执行OdbcDataAdapter.Fill(DataTable)时,我有时会遇到两种不同的错误。 这是代码示例:
string odbc = "select item, upcno from table";
OdbcCommand cmd = new OdbcCommand(odbc, fconn);
OdbcDataAdapter oda = new OdbcDataAdapter(cmd);
oda.Fill(dt);
System.NullReferenceException:未将对象引用设置为对象的实例。
System.InvalidOperationException:行/列没有数据。
有没有人有线索来解决这个问题?
答案 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]");