SqlBulkCopy を使用して、OleDbDataReader (xls のデータを含む) から mssql-2005 にデータを挿入します。OleDbDataReader に、テキストとして格納された数値 (xls 内) を含むクローンがあります。
mssql データを調べると、その列に null が表示され、他のすべての列は正常に移動します。
SqlBulkCopy を使用して、OleDbDataReader (xls のデータを含む) から mssql-2005 にデータを挿入します。OleDbDataReader に、テキストとして格納された数値 (xls 内) を含むクローンがあります。
mssql データを調べると、その列に null が表示され、他のすべての列は正常に移動します。
コードのように列をマップする必要があります...
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection))
{
bulkCopy.ColumnMappings.Add("ID", "ID");
bulkCopy.ColumnMappings.Add("Email", "Email");
bulkCopy.DestinationTableName = "tableName";
bulkCopy.WriteToServer(ExcelReader);
}
SQL Server から SQL Server に 1 つの一括コピーを行う場合、ソースはデータ型を宛先に正確に示すことができます。Excel では、ソースがデータ型を推測します。Excel はテキストとしてフォーマットされているかもしれませんが、ソース (ODBC?) は最初の 50 行を見て、それが数値データ型であると推測するかもしれません。列名が一致していても、データ型が異なる場合、列に値が入力されていないと思われます。