因此,例如:如何检查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
这不是问题。假设,出于某种原因,我不这样做。 –
我只是“尝试”访问该领域,如果它不在那里,则“抓”它。它仍然会返回一个错误,但是您可以在代码中处理这种情况。 –