为什么Crystal Report Viewer总是要求在WePOS操作系统上访问Access数据库的详细信息?

Ada*_*dam 14 c# ms-access crystal-reports

我使用Crystal Reports XI编写了一个报告,链接到Access数据库C:\ MyData.mdb.

该报告有一个字段(本例简化),没有子报告.

我使用C#.NET 4使用Forms和WPF Cyrtsal Report Viewer.

该报告在运行Windows XP的开发PC以及运行Windows XP的其他"tills"上成功查看.

但是,在运行WePOS(一种削减Windows XP)的情况下,报告"始终"显示一个对话框,询问登录详细信息,即用户名和密码.

此对话框还显示C:\ MyData.mdb的正确路径.

我花了很多天在这上面,以各种方式进行测试(我敢肯定每个人都记得这些时候!).

我使用此代码来确保数据库正确链接到:

TableLogOnInfo logonInfo;

foreach (CrystalDecisions.CrystalReports.Engine.Table table in report.Database.Tables)
{
    logonInfo = table.LogOnInfo;
    logonInfo.ConnectionInfo.ServerName = string.Empty;
    logonInfo.ConnectionInfo.DatabaseName = "C:\MyData.mdb";
    logonInfo.ConnectionInfo.UserID = string.Empty;
    logonInfo.ConnectionInfo.Password = string.Empty;
    table.ApplyLogOnInfo(logonInfo);
}
Run Code Online (Sandbox Code Playgroud)

...它适用于使用Windows XP的每台PC,除了带有WePOS的PC.

我也玩过:

report.SetDatabaseLogon(string.Empty, string.Empty, "C:\MyData.mdb", string.Empty);
Run Code Online (Sandbox Code Playgroud)

......但没有区别.

  1. Access数据库上没有用户名或密码
  2. 所有使用的PC都安装了相关软件(运行时等)
  3. 所有的PC都使用Adminstrator帐户进行了测试(文件权限被双重检查)
  4. 我试过勾选Integrated Security复选框,没有运气
  5. 我设置了logonInfo.ConnectionInfo.DatabaseName = string.Empty;
  6. 我设置了logonInfo.ConnectionInfo.ServerName ="C:\ MyData.mdb";
  7. 我试过不使用上面的任何代码,而只是确保数据库在所有PC上都在同一个地方,没有运气
  8. 它是Access 2003数据库文件

我只能得出结论,WePOS是如此"减少",以至于Crystal默默无法通过认证......请帮助!

Mar*_*rco 1

这个 WePos 东西是否具有从文件系统中的文件夹/位置读取的正确权限,或者您是否需要提升权限或从该位置读取某些内容。当您连接到远程网络文件夹时可能会出现同样的问题。然后,您还必须指定该计算机上的凭据才能访问它。这有道理吗?