SqlDataReader выяснить, допускает ли поле данных значение NULL

Есть ли способ определить в .NET для любого произвольного набора результатов SQL Server, может ли данный столбец в результате содержать нули?

Например, если у меня есть операторы

Select NullableColumn From MyTable

и

Select IsNull(NullableColumn, '5') as NotNullColumn From MyTable

, и я получаю такой носитель данных:

var cmd = new SqlCommand(statement, connection);
var rdr = cmd.ExecuteReader();

, могу ли я иметь такую ​​функцию?

bool ColumnMayHaveNullData(SqlDataReader rdr, int ordinal)
{
   //????
}

Я хочу вернуть истину для первого утверждения, и false для второго оператора.

rdr.GetSchemaTable () не работает для этого, потому что он возвращает, может ли нижележащий столбец быть нулевым, что я не хочу. В datareader есть функции, которые возвращают базовый sql-тип поля, но, похоже, ни одна из них не сообщает мне, может ли оно быть нулевым ..

7
задан dan 15 April 2011 в 02:20
поделиться