我尝试使用
currentOrder.PONumber = (reader.IsDBNull("PONumber") ? "Geen klantreferentie" : reader.GetString("PONumber"));
我有以下错误:
最佳重载方法匹配 ' System.Data.Common.DbDataReader.IsDBNull(INT)'有一些无效的 参数。
和
参数1:无法转换为' string'到' int'。
当我在IsDBNull
中使用columnindex时,出现以下错误:
数据是空的。无法在Null值上调用此方法或属性。
我该如何解决这个问题?
答案 0 :(得分:6)
使用
reader.IsDBNull(reader.GetOrdinal("PONumber"))
或者,如果要迭代许多行,请保持序数并重新使用它:
var poNumberOrdinal = reader.GetOrdinal("PONumber");
while (reader.Read())
{
reader.IsDBNull(poNumberOrdinal);
}
答案 1 :(得分:1)
试试这个:
currentOrder.PONumber = reader["PONumber"].Equals(DBNull.Value) ?
"Geen klantreferentie" : reader.GetString("PONumber"));