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

时间:2010-11-04 16:16:25

标签: c# sql excel

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

使用OleDb和以下SQL管理在轨道上走得很远: -

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

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

非常接近,但仍然无效。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

管理以解决由于跟踪和错误导致的问题。首先确保连接字符串引用OLEDB中的Access数据库,然后使您的SQL遵循以下格式: -

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

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

答案 1 :(得分:0)

两个想法:

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

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