簡體   English   中英

從ODBC閱讀器讀取-算術溢出異常

[英]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 overflowif (firstRun) dt.Columns.Add(reader.GetString(i), reader[i].GetType());

我在這里到底想念什么?

謝謝

reader.GetString(i)顯然返回指定列的值,而不是列的名稱。 因此,我將其替換為reader.GetName(i)以獲取列的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM