最好的方式来解释这是代码:返回位值
byte roominspiration = 0;
query = "SELECT room_inspiration FROM Room WHERE room_id = @room_id); SELECT SCOPE_IDENTITY();";
using (sqlConnection1)
{
using (SqlCommand cmd = new SqlCommand(query, sqlConnection1))
{
cmd.Parameters.Add("@room_id", System.Data.SqlDbType.Int);
cmd.Parameters["@room_id"].Value = roomid;
sqlConnection1.Open();
if (cmd.ExecuteScalar() != null)
{
roominspiration = (byte)cmd.ExecuteScalar();
}
}
}
所有我想要做的是更新“roominspiration”的该记录的任何值值在数据库中。数据库中的字段是一个默认值为0的数据类型。它始终设置正确,所以这不应该是一个返回null的问题。
任何人都可以发现我做错了什么,或者是否有更好的方式来做我正在做的事情。我的C#技能不太好,但我正在努力学习!
谢谢大家!
HTTP: //msdn.microsoft.com/en-us/library/ms131092.aspx – Oded 2012-01-13 19:27:53
嗯,这一行是错误的:roominspiration =((bool?)cmd.ExecuteScalar())。GetValueOrDefault(); 如果我将该行注释掉,但没有注释则会出错。 – Dan 2012-01-13 19:41:49
其实,我完全不好 - 查询中有语法错误!感谢您的帮助 - 现在布尔方式很好地工作。 – Dan 2012-01-13 19:56:14