C#中有一種方式可以確定數據庫字段在相對數據庫/平臺不可知的情況下是否爲空?換句話說,在Oracle我可以做這樣的事情:使用C#數據讀取器檢查數據庫字段是否可爲空使用C#數據讀取器檢查數據庫字段是否可空
select column_name, nullable
from all_tab_columns
where table_name = :TABLE
但這種方法是拴在甲骨文,我不得不拿出等同於其他平臺。
我希望通過數據提供者來做到這一點。我能夠使用類似於這樣提取的數據類型:
AseCommand cmd = new AseCommand(sql, conn);
AseDataReader reader = cmd.ExecuteReader();
for (int i = 0; i < reader.FieldCount; i++)
{
string name = reader.GetName(i);
string dbTypeName = reader.GetDataTypeName(i);
Type dbType = reader.GetFieldType(i);
}
在這個例子中它的Sybase,但方法是多態的跨其他平臺,至少我一直在使用的數據塊。
我唯一缺少的是該字段是否可以爲空。
也許這[鏈接]的重複[1]除了平臺無關的部分。 [1]:http://stackoverflow.com/questions/3253943/c-sharp-performance-gain-returning-a-nullable-type-from-a-sqldatareader – RetroCoder
感謝您的鏈接。不幸的是,這有助於我在處理值爲空時的值,但它不告訴我該字段是否可能爲空。不過,這實際上是值得一讀的。 – Hambone
@ChrisHamel我的回答是你在找什麼? – Austinh100