Я продолжаю получать эту ошибку, потому что VendorID является нулевым для этой записи. Я видел, что этот вопрос задавали пару раз, и мне кажется, что я должен просто проверить, есть ли значение null до того, как оно преобразует его и введет в dbtable, но я не уверен, как это сделать.Невозможно наложить объект типа «System.DBNull» на тип «System.String». Ошибка
public static PartOrder findPartOrder(string orderNo)
{
PartOrder aPartOrder = new PartOrder();
OleDbDataAdapter myAdapter = new OleDbDataAdapter();
if (aConnection.State == ConnectionState.Closed)
aConnection.Open();
OleDbCommand cmd = aConnection.CreateCommand();
OleDbDataReader dbReader = null;
cmd.CommandText = "SELECT * FROM PartOrder WHERE OrderNo = '" + orderNo + "'";
dbReader = cmd.ExecuteReader();
while (dbReader.Read())
{
aPartOrder.OrderNo = (string)dbReader.GetValue(0);
aPartOrder.Length = (string)dbReader.GetValue(1);
aPartOrder.Finish = (string)dbReader.GetValue(2);
aPartOrder.Cost = (string)dbReader.GetValue(3);
aPartOrder.PartDrawingNo = (string)dbReader.GetValue(4);
aPartOrder.VendorId = (string)dbReader.GetValue(5);
aPartOrder.ShopId = (string)dbReader.GetValue(6);
aPartOrder.Completed = (string)dbReader.GetValue(7);
}
dbReader.Close();
return aPartOrder;
}
Опять же, строка "aPartOrder.VendorId = (строка) dbReader.GetValue (5);" получает ошибку, потому что VendorId имеет значение NULL.
Мне это нравится, спасибо –