Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从SQL Server查询将数据导入Excel_C#_Sql Server_Tsql - Fatal编程技术网

C# 从SQL Server查询将数据导入Excel

C# 从SQL Server查询将数据导入Excel,c#,sql-server,tsql,C#,Sql Server,Tsql,我找到了一些将数据从SQLServer查询导入Excel的方法,如下所示,但它们似乎都不起作用 insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;', 'SELECT * FROM [SheetName$]') select * from tblName 错误: OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”无法用于分布式查

我找到了一些将数据从SQLServer查询导入Excel的方法,如下所示,但它们似乎都不起作用

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
      'Excel 8.0;Database=D:\testing.xls;', 
      'SELECT * FROM [SheetName$]') select * from tblName
错误:

OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”无法用于分布式查询,因为该提供程序已配置为在单线程单元模式下运行


如果您有32位Office并且不想卸载它,请尝试从microsoft安装最新的AccessDatabaseEngine(64位)。要在不卸载32位版本的情况下安装它,请转到comand line中的下载目录并写入

AccessDatabaseEngine.exe /passive
然后,在SSMS中,您可以使用以下代码导入Excel:

FROM OPENROWSET
('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\path\sheet.xlsx', [Sheet1$])

如错误消息所示,SQL server将无法使用此方法将数据传输到Excel。一种不需要编程的可能解决方案: 打开Excel,单击数据选项卡,从其他源,SQL Server。将打开一个窗口,提示输入服务器名称,提供服务器名称和实例名称,并用反斜杠分隔。示例:localhost\sqlexpress(如果您的电脑上运行的是sql server express edition,否则无论您安装了sql server的服务器是什么,都要附带实例名称)。通过提供SQL server中定义的用户id和密码或单击Windows身份验证进行身份验证。然后,您将有机会选择表名。然后,数据将被传输到Excel表格中,您可以通过右键单击该表格进行任意刷新。 请说明您是否需要可能需要编程的替代解决方案。

您应该看看解决方案。另外,可能您有x64机器,所以由于驱动程序不可用,它将无法工作。退房。

检查这些,然后