4

アップロードしようとしている DataTable がありますが、次の例外が発生
します。

これを行っている可能性があると私が考えることができる唯一の理由は、INT 型の列にアップロードされている DataTable に空のセルがあることです。DBNull.Value のすべての空の値を切り替えようとしましたが、この特定の列ではうまくいかないようです。アップロードのプロセスは次のとおりです。

private void UploadTable(string tableName, DataTable table)
    {
        foreach (DataRow r in table.Rows)
        {
            foreach (DataColumn c in table.Columns)
                if (r[c].ToString().Trim() == "")
                    r[c] = DBNull.Value;
        }

        using (SqlBulkCopy copy = new SqlBulkCopy(sqlCon))
        {

            copy.DestinationTableName = tableName;
            try
            {
                copy.WriteToServer(table);
            }
            catch (Exception ex)
            {
                lblError.Content = ex.ToString();
            }
        }
    }

私がアップロードするスキーマは次のとおりです。

[dbo].[table](
[Date] [smalldatetime] NOT NULL,
[Dollar] [varchar](50) NULL,
[CName] [varchar](100) NULL,
[tick] [varchar](10) NULL,
[id1] [varchar](10) NOT NULL,
[Total Quantity] [int] NULL,
[Quantity] [int] NULL
)

私が知らない SQLBulkCopy と nullable int クールムに関して何か特別なことはありますか? どんな入力でも大歓迎です。

4

2 に答える 2

2

intデータ列をデータテーブルに追加するときに、列の型を指定しましたか?

于 2011-02-24T19:35:19.113 に答える
0

不適切なファイル入力によりエラーが発生しました - 小数点が含まれており、想定されていませんでした

于 2011-09-15T16:24:02.210 に答える