DbType эквивалентен SqlDbType.Bit

Кто-нибудь знает, что такое DbType, эквивалентный SqlDbType.Bit?

я пытаюсь преобразовать

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

to

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

но я не знаю, какой DbType использовать для представления одного бита. Любые идеи?


person Aditi    schedule 06.03.2013    source источник
comment
возможно логическое значение? Хотя DbType — это Bit, а тип .NET — bool, что вы подразумеваете под DbType, эквивалентным SqlDbType.Bit?   -  person Freeman    schedule 06.03.2013
comment
Я согласен, логическое значение, поскольку оно хранится либо как 0, либо как 1.   -  person Derek    schedule 06.03.2013
comment
@Freeman, разве логическое значение не может быть истинным или ложным? и бит принимает 1, 0..   -  person Aditi    schedule 06.03.2013
comment
Точно, так что ваш вопрос?   -  person Freeman    schedule 06.03.2013


Ответы (4)


Тип базы данных bit представлен как логическое значение на стороне сервера, поэтому соответствующее значение DbType равно DbType.Boolean.

person Guffa    schedule 06.03.2013

DbType.Boolean:

Простой тип, представляющий логические значения true или false.

SqlDbType.Bit:

логическое значение. Числовое значение без знака, которое может принимать значения 0, 1 или null.

Их описания не совсем совпадают, но поскольку Bit описывается как Boolean, это наиболее подходящее совпадение.

person Damien_The_Unbeliever    schedule 06.03.2013
comment
Будет ли что-то подобное работать тогда - cmd.Parameters.Add("@isActive", SqlDbType.Bit).Value = False - person MaylorTaylor; 17.12.2014
comment
Является ли он наиболее подходящим? C# знает null, как и поля BIT, допускающие значение NULL, в SQL. SQL Server, например, принимает только 0/1/NULL, а не true/false. - person dakab; 30.11.2015
comment
@dakab - здесь есть различные проблемы, которые я не включил в свой ответ, например, тот факт, что SQL Server не имеет фактического логического типа данных (bit описывается в документации как числовой тип) и что, если SQL Сервер должен реализовать правильный логический тип данных (стандарт SQL), а затем из-за использования трехзначной логики этот тип должен поддерживать true, false и unknown, а также (стандарт для каждого типа) отсутствие значения через null. - person Damien_The_Unbeliever; 30.11.2015

http://msdn.microsoft.com/en-us/library/system.data.sqldbtype.aspx

enum SqlDbType — бит: логическое значение. Числовое значение без знака, которое может принимать значения 0, 1 или null.

person Alex    schedule 06.03.2013

Из http://msdn.microsoft.com/en-us/library/fhkx04c4, я бы сказал DbType.Boolean Простой тип, представляющий логические значения true или false.

person jordanhill123    schedule 06.03.2013
comment
Это не учитывает, что OP запрашивал SQLDbType, который не включает логический тип. - person MaylorTaylor; 17.12.2014