IsDBNul带字符串

Mar*_*ten 1 c# mysqldatareader

我试着用

currentOrder.PONumber = (reader.IsDBNull("PONumber") ? "Geen klantreferentie" : reader.GetString("PONumber"));
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

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

参数1:无法从'string'转换为'int'.

当我使用columnindex时IsDBNull,我有以下错误:

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

我怎么解决这个问题?

jpw*_*jpw 6

使用

reader.IsDBNull(reader.GetOrdinal("PONumber")) 
Run Code Online (Sandbox Code Playgroud)

或者,如果要迭代许多行,请保持序数并重新使用它:

var poNumberOrdinal = reader.GetOrdinal("PONumber");

while (reader.Read())
{
    reader.IsDBNull(poNumberOrdinal);
}
Run Code Online (Sandbox Code Playgroud)