6

有誰知道什麼是DbType相當於SqlDbType.Bit?DbType相當於SqlDbType.Bit

我想轉換

param[0] = new SqlParameter("@Status", SqlDbType.Bit); 
param[0].Value = Status; 

db.AddInParameter(dbCommand, "@Status", <DbType dbType>, Status); 

,但我不知道是哪的DbType用來表示單個位。有任何想法嗎?

+2

一個布爾也許?儘管DbType是Bit,.NET類型是bool,那麼「DbType等同於SqlDbType.Bit」是什麼意思? – Freeman 2013-03-06 09:22:49

+0

我同意,布爾,因爲它存儲爲0或1. – Derek 2013-03-06 09:25:51

+1

@Freeman不會布爾採取真或假?和位需要1,0 .. – Aditi 2013-03-06 09:26:17

回答

7

數據庫類型bit在服務器端表示爲布爾值,因此相應的DbType值爲DbType.Boolean

7

DbType.Boolean

一個簡單的類型表示的真或假的布爾值。

SqlDbType.Bit

Boolean。無符號數字值,可以是0,1或null。

他們描述的不太相符,但由於Bit被描述爲Boolean,這是最合適的匹配。

+0

會這樣的工作 - 'cmd.Parameters.Add(「@ isActive」,SqlDbType.Bit).Value = False' – MaylorTaylor 2014-12-17 17:05:20

+0

這是最合適的嗎? C#知道'null',就像SQL中的可空'BIT'字段一樣。例如,SQL Server只接受「0/1/NULL」而不是「true/false」。 – dakab 2015-11-30 17:30:47

+0

@dakab - 我的答案中沒有包含各種問題 - 例如SQL Server沒有實際的布爾數據類型(「bit」在文檔中被描述爲數字類型),而且,如果SQL Server *是*實現適當的(SQL標準)布爾數據類型,那麼由於它使用三值邏輯,該類型應該支持'true','false'和'unknown',加上(標準對於每種類型)缺少通過'null'的值。 – 2015-11-30 17:35:41