そのレコードの VendorID が null であるため、このエラーが発生し続けます。この質問が数回聞かれているのを見たことがありますが、変換して dbtable に入力する前に null かどうかを確認する必要があるようですが、その方法がわかりません。
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 = (string)dbReader.GetValue(5);」という行です。VendorId が null であるため、エラーが発生します。