从Excel电子表格插入数据到Microsoft Access使用C#

我目前正试图插入Excel电子表格中存在的数据直接使用C#的Access表。 不想使用Interop以避免挂起会话等

使用OleDb和以下SQLpipe理得非常好: –

INSERT INTO [MS Access; DATABASE = C:\ Reports.mdb] .tbl_Limit SELECT 1,Limit FROM [rngLimit]“其中rngLimit是Excel范围名称。

错误消息:=没有给出一个或多个必需参数的值。

非常接近,但它仍然不起作用。 有任何想法吗?

由于跟踪和错误pipe理解决问题。 首先确保连接string是指在OLEDB内的访问数据库,然后让你的SQL遵循这种格式:

[INSERT INTO] + [MS Access; DATABASE =“+ AccessDatabaseName +”]。“+ AccessDestinationTableName +”SELECT“+ ExcelFieldNames +”FROM [“+ ExcelRangeName +”]“;

就像使用普通的SQL插入语句一样,必须确保字段FROM和TO的计数是相等的,即INSERT INTO tbl_Name(col1,col3)values(col1,col2)

两个想法:

Excel电子表格中的列标题是否与Access数据库中的列名称完全匹配?

rngLimit是Excel中命名范围的Name (严格来说,是一个Name对象,它是相应工作簿的Names集合的成员),还是只是引用Range对象的variables的名称? 如果是后者,则需要以此格式给出范围的完整地址: [Sheet1$A1:D52] 。 您可以调查Worksheet.NameRange对象的Address属性