解释此问题的最佳方法是使用代码:

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();
  }
}

09-30 12:53
查看更多