[英]Reading from ODBC reader - Arithmetic Overflow Exception
我正在嘗試通過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);
在我正在閱讀的第一行中,我正在數據表中創建列。 然后,我繼續讀取每一行的單元格值。 這就是要注意的問題:如果我執行選擇查詢返回單列,則在wworks上面進行操作。 但是,如果我在多列上執行它,則會引發異常: Arithmetic operation resulted in an overflow
該行Arithmetic operation resulted in an overflow
: if (firstRun) dt.Columns.Add(reader.GetString(i), reader[i].GetType());
我在這里到底想念什么?
謝謝
reader.GetString(i)
顯然返回指定列的值,而不是列的名稱。 因此,我將其替換為reader.GetName(i)
以獲取列的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.