2

我正在使用将 Excel 文件导入 SQL ServerSqlBulkCopy

但每次我得到不同的错误,比如

无法更新。数据库或对象是只读的。

或者

找不到可安装的 ISAM。

或者

Microsoft Jet 数据库引擎找不到该对象。确保对象存在并且正确拼写其名称和路径名。

在下面检查我的代码...

String strConnection = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filepath+";Extended Properties=Excel 8.0;HDR=YES;";

//Create Connection to Excel work book
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);

//Create OleDbCommand to fetch data from Excel
OleDbCommand cmd = new OleDbCommand
("Select * from [Sheet1$]",
excelConnection);
MessageBox.Show("ss");
excelConnection.Open();
MessageBox.Show("ss2");
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
MessageBox.Show("ss1");
SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);
sqlBulk.DestinationTableName = "RecExcelTable";
//sqlBulk.ColumnMappings.Add("ID", "ID");
//sqlBulk.ColumnMappings.Add("Name", "Name");
sqlBulk.WriteToServer(dReader);

我还需要为任何版本的 Excel 兼容此代码。

我该如何做到这一点并解决我的错误?

4

1 回答 1

0

我有类似的问题。检查文件路径是否正确

喜欢

C:\\file.xls

作为测试。

并检查版本是否正确。8.0 已经很老了,我认为这就像 Office 2000,不是吗?

于 2012-10-17T02:44:03.307 回答