1

使ってみます

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

次のエラーがあります。

'System.Data.Common.DbDataReader.IsDBNull(int)' に最適なオーバーロードされたメソッドには、無効な引数が含まれています。

引数 1: 'string' から 'int' に変換できません。

で columnindex を使用するとIsDBNull、次のエラーが発生します。

データがヌルです。このメソッドまたはプロパティは、Null 値では呼び出すことができません。

どうすればこれを解決できますか?

4

2 に答える 2

6

使用する

reader.IsDBNull(reader.GetOrdinal("PONumber")) 

または、多くの行を反復している場合は、序数を保持して再利用します。

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

while (reader.Read())
{
    reader.IsDBNull(poNumberOrdinal);
}
于 2014-03-17T13:31:21.603 に答える
1

これを試して:

currentOrder.PONumber = reader["PONumber"].Equals(DBNull.Value) ? 
                         "Geen klantreferentie" :  reader.GetString("PONumber"));
于 2014-03-17T13:32:52.767 に答える