IsDBNul带字符串

时间:2014-03-17 13:27:55

标签: c# mysqldatareader

我尝试使用

currentOrder.PONumber = (reader.IsDBNull("PONumber") ? "Geen klantreferentie" : reader.GetString("PONumber"));

我有以下错误:

  

最佳重载方法匹配   ' System.Data.Common.DbDataReader.IsDBNull(INT)'有一些无效的   参数。

  

参数1:无法转换为' string'到' int'。

当我在IsDBNull中使用columnindex时,出现以下错误:

  

数据是空的。无法在Null值上调用此方法或属性。

我该如何解决这个问题?

2 个答案:

答案 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"));