指定的转换无效。由 C# MDB 数据库

Specified cast is not valid. c# mdb database

我在我的 C# 应用程序中使用 mdb 数据库,我有 table 个产品,其中有 3 个列(Id、名称、注释),注释列包含 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();

如果您的列包含 NULL 值,则您无法将该 NULL 值转换为字符串并尝试将其添加到您的列表视图子项中。你需要检查一下

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++;
}