簡體   English   中英

從C#中的SQL查詢返回位值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM