Я намерен копировать данные Excel в SQL Server Compact Edition.
Я прочитал разницу между SQL Server Compact и SQL Server отсюда, но не смог найти его.
Кроме того, знайте, что конструктор SqlBulkCopy принимает параметр SqlConnection, а не SqlCeConnection.
Вот мой код:
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();
}
Я думаю, что эта тема связана с вашей проблемой. Вы также можете посмотреть библиотеку , предлагаемую для использования также в этом разговоре.
Вы можете использовать мою библиотеку SqlCeBulkCopy, доступную через NuGet для SQL CE 4.0 или иначе доступную здесь: https://sqlcebulkcopy.codeplex.com/