解释此问题的最佳方法是使用代码:
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#技能不太好,但是我正在尝试学习!
谢谢大家!
最佳答案
我认为您想在此处使用bool
.NET数据类型。
所以,
bool roominspiration = false;
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();
roominspiration = ((bool?)cmd.ExecuteScalar()).GetValueOrDefault();
}
}