首页 > 解决方案 > 以除我的本地帐户以外的任何帐户登录时,Excel 不使用 OPENROWSET 插入数据

问题描述

我正在尝试通过 ac#winforms 应用程序将数据从 SQL Server 导出到 Excel。该应用程序在 Windows 域环境中运行。

这是查询:

string exportQuery = @"INSERT INTO OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; Database=C:\temp\ExportedCategoryTotals.xls; HDR=YES' , 'SELECT * FROM [Sheet1$] AS f') " +

"SELECT category AS Category, counter AS Counter, date AS Date, locationname AS Location FROM categoryData " +

"WHERE locationName IN ('" + locationBox.SelectedItem.ToString() + "')" +
                        " AND date BETWEEN CAST('" + startDate + "' AS DATETIME) 

AND CAST('" + endDate + "' AS DATETIME) ORDER BY locationName, date, counter DESC";

当我以自己的身份运行此查询时(登录到我在域上的用户帐户)(在我的 c# 应用程序内部),一切都按原样运行,并且数据从 SQL Server 导出到 excel。

当我以其他人的身份运行此查询时。该文件不包含任何数据。编译器没有错误。

我尝试创建与当前用户的广告用户匹配的登录名,并为该用户分配域管理员帐户的凭据。但同样的结果。

使用 Procmon 揭示:

在此处输入图像描述

我会很感激一些帮助。

标签: c#sql-serverwinformsexportopenrowset

解决方案


推荐阅读