[英]Return bit value from SQL query in C#
解釋這個的最好方法是使用代碼:
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();
}
}
您還可以將該位轉換為bool,將roominspiration定義為一個字節,最后將其轉換為
roominspiration = ConvertToBoolean(the value you are wanting to convert);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.