在.NET中,我是否可以确定任何任意的SQL Server结果集中,给定的结果集列是否可以包含空值?
例如,如果我有以下语句:
Select NullableColumn From MyTable
and
Select IsNull(NullableColumn, '5') as NotNullColumn From MyTable
我得到了一个数据阅读器,就像这样:
var cmd = new SqlCommand(statement, connection);
var rdr = cmd.ExecuteReader();
我可以提供这样的函数吗?
bool ColumnMayHaveNullData(SqlDataReader rdr, int ordinal)
{
//????
}
我希望第一个语句返回true,第二个语句返回false。
rdr.GetSchemaTable()
无法实现此功能,因为它返回的是底层列是否可以为空,而这不是我想要的。虽然datareader上有一些函数可以返回字段的底层SQL类型,但没有一个能告诉我它是否可以为空。