【问题标题】:Error from OdbcDataAdapter.Fill来自 OdbcDataAdapter.Fill 的错误
【发布时间】:2013-06-02 19:37:20
【问题描述】:

在执行 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:行/列不存在数据。

有人知道解决这个问题吗?

【问题讨论】:

  • 那是真正的 SQL 还是演示?因为这些名字是有问题的。例如,Table 是保留字。
  • 嗯,这是一个真正的SQL,我只是删除了表名
  • 你是先实例化dt,如:DataTable dt = new DataTable();
  • @user2460647 你试过我的答案了吗,你还遇到异常吗?

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


【解决方案1】:

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

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]");

【讨论】:

  • 我正在测试您的建议,现在看起来好多了。让我们看看进展如何
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2012-05-04
  • 2018-05-08
  • 2020-12-13
  • 2013-01-02
  • 2016-07-13
相关资源
最近更新 更多