1

I try to use

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

and I have the following errors:

The best overloaded method match for 'System.Data.Common.DbDataReader.IsDBNull(int)' has some invalid arguments.

and

Argument 1: cannot convert from 'string' to 'int'.

When I use the columnindex in IsDBNull, I have the following error:

Data is Null. This method or property cannot be called on Null values.

How can I solve this?

Marten
  • 1,376
  • 5
  • 28
  • 49

2 Answers2

6

Use

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

Or if you are iterating many rows, keep hold of the ordinal and re-use it:

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

while (reader.Read())
{
    reader.IsDBNull(poNumberOrdinal);
}
Adam Houldsworth
  • 63,413
  • 11
  • 150
  • 187
jpw
  • 44,361
  • 6
  • 66
  • 86
1

Try This:

currentOrder.PONumber = reader["PONumber"].Equals(DBNull.Value) ? 
                         "Geen klantreferentie" :  reader.GetString("PONumber"));
Sudhakar Tillapudi
  • 25,935
  • 5
  • 37
  • 67