问题描述
- 在将 varchar 值 'JAZZ' 转换成数据类型 int 时失败。
-
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class Describe : System.Web.UI.Page
{
SqlHelper sqloperate = new SqlHelper();
SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{if (!IsPostBack)
{
if (Session["users"] != null)
{
sqlconn.Open();
string sqlstr = "Select * from tb_GoodsInfo where GoodsID='" + Session["users"].ToString() + "'";
SqlDataAdapter myApter = new SqlDataAdapter(sqlstr, sqlconn);
DataSet myDS = new DataSet();
myApter.Fill(myDS, "tb_GoodsInfo");
if (myDS.Tables["tb_GoodsInfo"].Rows.Count > 0)
{DataRowView rowView = myDS.Tables["tb_GoodsInfo"].DefaultView[0]; txtGoodsName.Text = Convert.ToString(rowView["GoodsName"]); txtKind.Text = Convert.ToString(rowView["GoodsKind"]); imgGoodsPhoto.ImageUrl = Convert.ToString(rowView["GoodsPhoto"]); txtGoodsDesc.Text = Convert.ToString(rowView["GoodsIntroduce"]); } } else Response.Write("<script>alert('您还没有登录,请登录后再使用,谢谢!');</script>"); } } //关闭窗口 protected void btnClose_Click(object sender, EventArgs e) { Response.Write("<script>window.close();</script>"); }
}
解决方案
varchar对应取出来是string,如果你硬要转成int 也该是integer.parse
解决方案二:
一个字符串怎么能转换成int呢。。。。肯定会报错啊
解决方案三:
错误不是很明显了,数据类型错了,你的goodsid是数字类型,session存储的是字符串转换不成数字
Session["users"].ToString() 要存储用户的id,不是用户名
解决方案四:
消息 245,级别 16,状态 1,过程 Sp_BackVoiceIDs,第 38 行
在将 varchar 值 ',' 转换成数据类型 int 时失败。
搜了一下,发现字符串变量和整型变量不能用+
CAST()函数可以将某种数据类型的表达式转化为另一种数据类型
select
cast表达式 as 数据类型)
select
CAST('......
答案就在这里:在将 varchar 值 ',' 转换成数据类型 int 时失败。