0

执行 OdbcDataAdapter.Fill(DataTable) 时,有时会出现两种不同的错误。这是代码示例:

string odbc = "select item, upcno from table";
OdbcCommand cmd = new OdbcCommand(odbc, fconn);
OdbcDataAdapter oda = new OdbcDataAdapter(cmd);
oda.Fill(dt);
  1. System.NullReferenceException:对象引用未设置为对象的实例。

  2. System.InvalidOperationException:行/列不存在数据。

有没有人有解决这个问题的线索?

4

1 回答 1

0

不确定您从问题中获得连接对象的位置,但您可以执行以下操作。不要创建类级别的连接,您可以在需要时创建它并在最后正确处理它。

public DataTable GetDataTableFromAdapter(string queryString)
{
    DataTable dt = new DataTable();
    using (OdbcConnection connection =
                new OdbcConnection(ConnectionString))
    {
        using (OdbcDataAdapter adapter =
                new OdbcDataAdapter(queryString, connection))
        {
            connection.Open();
            adapter.Fill(dt);
        }
    }
    return dt;
}

称它为

DataTable dt = GetDataTableFromAdapter("select [item], [upcno] from [table]");
于 2013-06-06T17:21:03.160 回答