質問して申し訳ありませんが、私のような別の状況を読んでも質問を解決できませんでした。
long を持つ配列があり、それをデータベースに挿入する必要があります。データベースには、OGRN - bigint
、データ フィールド、Id - int
、ID フィールドの 2 つのフィールドしかありません。私はこのようなDataTableを作成しています
private static DataTable CreateDataTable()
{
var result = new DataTable();
var ogrn = new DataColumn("Ogrn") {DataType = typeof (long), ColumnName = "Ogrn"};
result.Columns.Add(ogrn);
var id = new DataColumn("Id") { DataType = typeof(int), ColumnName = "Id", AutoIncrement = true };
result.Columns.Add(id);
result.PrimaryKey = new[] { id };
return result;
}
私がこれをやった後:
var dt = CreateDataTable();
foreach (long ogrn in ogrns)
{
var row = dt.NewRow();
row["Ogrn"] = ogrn;
dt.AcceptChanges();
}
using (var sqlBulkCopy = new SqlBulkCopy(ConnectionString))
{
sqlBulkCopy.DestinationTableName = "dbo.ULs";
sqlBulkCopy.ColumnMappings.Add("Ogrn", "Ogrn");
sqlBulkCopy.ColumnMappings.Add("Id", "Id");
sqlBulkCopy.WriteToServer(dt);
}
では、なぜうまくいかないのでしょうか。私は何か重要なものを見逃していますか?