ms access -指定的类型转换无效.c# MDB数据库

本文关键字:无效 MDB 数据库 类型转换 access -指 ms | 更新日期: 2023-09-27 17:54:15

我使用mdb数据库与我的c#应用程序,我有表产品有3列(Id,Name,Note),备注列包含NULL值。

objConn.Open();
listView1.Items.Clear();
OleDbCommand cmd = new OleDbCommand("select prod_Id,prod_Name,prod_Note from products", objConn);
OleDbDataReader dataReader = cmd.ExecuteReader();
int i = 0;
while (dataReader.Read())
{
    listView1.Items.Add(dataReader.GetValue(0).ToString());                 
    listView1.Items[i].SubItems.Add(dataReader.GetString(1).ToString());
    listView1.Items[i].SubItems.Add(dataReader.GetString(2).ToString());// Error appear here, which for Note column that has null values
    i++;
}
objConn.Close();

ms access -指定的类型转换无效.c# MDB数据库

如果列包含NULL值,则不能将该NULL值转换为字符串并尝试将其添加到listview子项中。你需要检查

int i = 0;
while (dataReader.Read())
{
    listView1.Items.Add(dataReader.GetValue(0).ToString());
    listView1.Items[i].SubItems.Add(dataReader.GetString(1));
    listView1.Items[i].SubItems.Add(dataReader.IsDBNull(2) ? "": dataReader.GetString(2));
    i++;
}