簡體   English   中英

T-SQL中的位類型

[英]Bit type in T-SQL

在我的表中,我使用IsTrue列的位類型。

當我執行select命令時:

SqlDataReader reader = command.ExecuteReader(); 

我不確定reader["isTrue"]返回什么?

我嘗試進行比較

reader["isTrue"].ToString().Equals("0")

但效果不佳。 有人可以告訴我我做錯了什么嗎?

它返回一個布爾值。

bool value = (bool)reader["IsTrue"];

如果您知道結果集中列的索引,則可以使用:

bool value = reader.GetBoolean(index);

我喜歡使用擴展方法來做到這一點:

public static bool ToBool(this string theString)
    {
        bool result = false;
        bool.TryParse(theString, out result);
        return result;

    }

在您的代碼中,您只需執行以下操作:

if(reader["isTrue"].ToBool())
{
}

在以下情況下,ToBool擴展方法將返回true / false:

  • 如果reader [“ isTrue”]返回DBNull.Value,則返回false
  • 如果reader [“ isTrue”]返回0(按位),則返回false
  • 如果reader [“ istrue”]返回1(按位),則返回true

而且,除非您的結果集中沒有出現“ isTrue”列,否則它永遠不會引發異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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