我尝试使用下面的代码从我的数据库中Score_Waarde
值:指定的转换无效
critid = critid_arr[teller2].ToString();
int scorehulp = 0;
string userid = Session["userid"].ToString();
SqlCommand cmd3 = new SqlCommand("SELECT Score_Waarde FROM Score WHERE Crit_ID = '" + critid + "' AND User_ID = '" + userid + "' ", con);
scorehulp = (int)cmd3.ExecuteScalar();
当我试图运行此我得到以下错误:指定的转换无效。 我不明白为什么我得到这个错误,因为critid
和userid
正在给出正确的值。
与调试器连接,什么样的价值*被*退换吗?如果它的类型是不'System.Int32'那么就会可怕死。(例如,如果它返回一个'long'或'字节'它不会工作。)最好的洼Ÿ查找/修复是为了检查检查的假设;并在此处使用调试器将跳过20个步骤:-) – 2011-05-18 22:21:45
您可以尝试[Int32.Parse](http://msdn.microsoft.com/zh-cn/library/b3h1hf19.aspx)返回值的字符串表示形式。但要小心'空'值。 'Int32.Parse(cmd3.ExecuteScalar()。ToString())' – 2011-05-18 22:26:31
你应该检查返回值不是'DBNull'。 – 2011-05-18 22:27:09