0

sqlbulkcopy を使用して C# コードからバルク データを挿入していました。

実行した後、テーブルには 37 レコードしかないことがわかりました。最初は 152 列でしたが、その後は 32 列しか残っていませんでした。

この理由は何でしょうか?

このための C# コード

public static void BulkInsert(SqlConnection connection,DataTable DtRecord,string   TableName)
    {

        if (DtRecord == null) throw new ArgumentNullException("dataTable");
        // Create & open a SqlConnection, and dispose of it after we are done

            connection.Open();
            SqlBulkCopy bulkCopy = new SqlBulkCopy(connection);
            bulkCopy.DestinationTableName = TableName;
            for (int recordLoop = 0; recordLoop < DtRecord.Columns.Count; recordLoop++)
            {
                bulkCopy.ColumnMappings.Add(DtRecord.Columns[recordLoop].ColumnName, DtRecord.Columns[recordLoop].ColumnName);
            }

            bulkCopy.WriteToServer(DtRecord);
            bulkCopy.Close();
            connection.Close();

    }
4

1 に答える 1

0

この MSDN ページで提供されているコード例には、コピー操作を実行する前に適切なフィールドを持つテーブルを作成するスクリプトが含まれているため、SqlBulkCopy がスキーマを変更するとは思えません。さらに、SQLBulkCopy は列マッピングを利用しますが、これはターゲット テーブルのスキーマの変更と矛盾します。これを行うにはマッピングが必要ないためです。

于 2009-09-30T15:45:38.710 に答える