从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.Name
和Range
对象的Address
属性