因此,例如:如何檢查ResultTable是否有字段?
while(reader.Read())
{
var test = reader["NonExistentField"];
}
這將會給我一個錯誤。測試null(reader["NonExistentField"] == null ?
)也是一樣。
因此,例如:如何檢查ResultTable是否有字段?
while(reader.Read())
{
var test = reader["NonExistentField"];
}
這將會給我一個錯誤。測試null(reader["NonExistentField"] == null ?
)也是一樣。
看一看:https://stackoverflow.com/a/4134220/777843
reader.GetSchemaTable().Columns.Contains("field")
正是我以後的樣子。 –
這完全是關於Schema而不是返回給你的DataTable。模式包含您需要的關於結果的所有信息,包括列名。我想你應該看看這裏:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getschematable.aspx
此外,在另一種簡單的方法,你可以使用此代碼:
DataTable result = new DataTable();
result.Load(reader);
if (result.Columns.Contains("SomeColumnName"))
//Do something about it.
乾杯
假設我想在閱讀器上執行等效的「包含」調用。 +1。 –
這是正確的。另請參閱更新。希望能幫助到你。 – Rikki
你不知道你的表中有哪些字段? – John
這不是問題。假設,出於某種原因,我不這樣做。 –
我只是「嘗試」訪問該領域,如果它不在那裏,則「抓」它。它仍然會返回一個錯誤,但是您可以在代碼中處理這種情況。 –