解释这个的最好方法是使用代码:
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我所要做的就是将'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();
}
}
Run Code Online (Sandbox Code Playgroud)