OdbcDataAdapter.Fill出错

时间:2013-06-06 17:09:54

标签: c# asp.net datatable database-connection dataadapter

执行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:行/列没有数据。

  3. 有没有人有线索来解决这个问题?

1 个答案:

答案 0 :(得分: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]");