有沒有一種方法,我可以在.NET確定,對於任意SQL Server的結果集,如果結果給定的列可以包含空值?SqlDataReader的找出一個數據字段爲空
舉例來說,如果我有陳述
Select NullableColumn From MyTable
和
Select IsNull(NullableColumn, '5') as NotNullColumn From MyTable
,我得到這樣一個DataReader:
var cmd = new SqlCommand(statement, connection);
var rdr = cmd.ExecuteReader();
我能有這樣的功能?
bool ColumnMayHaveNullData(SqlDataReader rdr, int ordinal)
{
//????
}
我希望它爲第一個語句返回true,爲第二個語句返回false。
rdr.GetSchemaTable()
因爲它返回相關的列是否可以爲null,這不是我想要的不適合這項工作。有跡象表明,返回字段的基本SQL類型,但沒有人可以告訴我,如果它可以是空的DataReader的功能..
我可以問你爲什麼想知道? – tomfanning 2011-04-14 23:26:23
@tomfanning我正在破解一個ORM。我想記錄任何時候有人試圖運行一個可空數據庫字段映射到不可爲空值類型的查詢。 – dan 2011-04-15 00:22:03