我正在尝试通过 ODBC 连接检索数据并将其放入数据表中。进来的数据可能有一些单元格值为空。
这是我用来在数据表中导入数据的代码:
DataTable dt = new DataTable();
OdbcCommand cmd = _conn.CreateCommand();
cmd.CommandText = sql;
OdbcDataReader reader = cmd.ExecuteReader();
bool firstRun = true;
while (reader.Read())
{
object[] row = new object[reader.FieldCount];
for (int i = 0; i < reader.FieldCount; i++)
{
if (firstRun)
dt.Columns.Add(reader.GetString(i), reader[i].GetType());
if (!reader.IsDBNull(i))
row[i] = reader.GetValue(i);
}
firstRun = false;
dt.Rows.Add(row);
在我正在阅读的第一行中,我正在数据表中创建列。然后我继续阅读每一行的单元格值。这是一个问题:如果我执行一个返回单列的选择查询,上面的操作就可以工作。但是,如果我在多个列上执行它,则会引发异常:Arithmetic operation resulted in an overflow
就行:if (firstRun) dt.Columns.Add(reader.GetString(i), reader[i].GetType());
我到底在这里想念什么?
谢谢