使用Sql连接字符串提取Excel数据

时间:2013-08-06 09:06:21

标签: sql

我的目的是使用数据表在表中呈现excel数据,这样就打开了一个odbc连接并加载了这样的数据表:

System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};Driverid=790;Dbq=C:\Users\*******\Documents\Book1.xlsx;DefaultDir=C:\Users\******\Documents;HDR=YES);
conn.Open();
DataTable dataTable = new DataTable();
string con = "select * from [sheet1$]";
System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand(con, conn);
System.Data.Odbc.OdbcDataReader dr = cmd.ExecuteReader();
dataTable.Load(dr);

但是却发现了像这样的错误

  

错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

实际上,什么是根本原因?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

This建议

"changing the Platform target project setting from Any CPU to x86."

会有所帮助。正如错误所说,根本原因是数据库驱动程序和应用程序之间不匹配。

These docs

  

如果使用64位odbcad32.exe配置或删除DSN   连接到32位驱动程序,例如,驱动程序执行Microsoft Access   (* .mdb),您将收到以下错误消息:指定   DSN包含驱动程序和驱动程序之间的体系结构不匹配   应用程序要解决此错误,请使用32位odbcad32.exe   配置或删除DSN。