回到我動態選擇一個表,從選擇和有不上所有的表都存在一個字段。在我的閱讀器中,如何檢查該字段是否存在於集合中?確定一個字段從DataReader
我用這一點,但它僅確定它是否爲空...不是它是否存在與否:
if (myReader.GetValue(myReader.GetOrdinal("PrePay")) != DBNull.Value)
myModel.PrePay = myReader.GetBoolean(myReader.GetOrdinal("PrePay"));
回到我動態選擇一個表,從選擇和有不上所有的表都存在一個字段。在我的閱讀器中,如何檢查該字段是否存在於集合中?確定一個字段從DataReader
我用這一點,但它僅確定它是否爲空...不是它是否存在與否:
if (myReader.GetValue(myReader.GetOrdinal("PrePay")) != DBNull.Value)
myModel.PrePay = myReader.GetBoolean(myReader.GetOrdinal("PrePay"));
while(reader.Read())
{
if(reader.GetOrdinal("FieldName")>=0) //field exists
{
....
}
}
for (int i = 0; i < myReader.FieldCount; i++)
{
string name = myReader.GetName(i);
if (string.Equals(name , "PrePay", StringComparison.OrdinalIgnoreCase))
{
object value = myReader.GetValue(i);
if (!Convert.IsDBNull(value))
{
myModel.PrePay = (bool)value;
}
break;
}
}
如果你的讀者返回多行,那麼你應該在一開始只執行一次查找,然後緩存通過ResultSet迭代時使用的序號。
While(myReader.Read())
{
MessageBox.Show(myReader.Item("PrePay").toString());
}
基本上,如果「PrePay」的值爲null,則不存在,否則就不存在。
的[在一個SqlDataReader對象檢查列名]可能重複(http://stackoverflow.com/questions/373230/check-for-column-name-in-a-sqldatareader-object)。似乎是這個問題的最大答案 –