私の意図は、Excel データを SQL Server Compact Edition にコピーすることです。
ここから SQL Server Compact と SQL Server の違いを読みましたが、見つけられませんでした。
また、SqlBulkCopy のコンストラクターは、SqlCeConnection ではなく SqlConnection のパラメーターを受け取ることに注意してください。
これが私のコードです:
public void importDataFromExcel(string excelFilePath)
{
string sSQLTable = "Inflations";
string myExcelDataQuery = "Select CUSIP,FM,TNT,CPI_INDEX from [Sheet1$]";
string sExcelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";Extended Properties=" + "\"Excel 8.0;HDR=YES;\"";
string sSqlConnectionString = "Data Source=C:\\Users\\abc\\Documents\\datafile.sdf;Password=12345;";
OleDbConnection OleDbConn = new OleDbConnection(sExcelConnectionString);
OleDbCommand OleDbCmd = new OleDbCommand(myExcelDataQuery, OleDbConn);
OleDbConn.Open();
OleDbDataReader dr = OleDbCmd.ExecuteReader();
SqlBulkCopy bulkCopy = new SqlBulkCopy(sSqlConnectionString);
bulkCopy.DestinationTableName = sSQLTable;
while (dr.Read())
{
bulkCopy.WriteToServer(dr);
}
OleDbConn.Close();
}