Crystal Report要求数据库登录,仅限WinXP

时间:2011-04-04 08:15:12

标签: c# database crystal-reports login

我需要帮助。这是我的C#代码,用于显示报告:

TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;

//Let's say I have a report called RptExample
RptExample objRpt = new RptExample();

//Set Static Text
txtTitle = objRpt.ReportDefinition.ReportObjects["TextTitle"] as TextObject;
txtTitle.Text = "Test";

//This is my connection info
crConnectionInfo.ServerName = "SERVERNAME\\SQLEXPRESS"; 
crConnectionInfo.DatabaseName = "DBNAME";
crConnectionInfo.UserID = "USER";
crConnectionInfo.Password = "PASS";

CrTables = objRpt.Database.Tables;

foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
    crtableLogoninfo = CrTable.LogOnInfo;
    crtableLogoninfo.ConnectionInfo = crConnectionInfo;
    CrTable.ApplyLogOnInfo(crtableLogoninfo);
}

//CRV is my CrystalReportViewer
CRV.LogOnInfo = crtableLogoninfos;
CRV.ReportSource = objRpt;   

它在Windows 7中正常工作,但是当我尝试使用Windows XP时,数据库登录窗口总是弹出,只询问密码(SERVERNAME,DBNAME和USERNAME字段已经填充了正确的字符串。只有PASSWORD失踪了)。

我做错了什么?

这么多< 3

编辑:

我发现只有在使用公共IP访问数据库服务器时才会出现此问题,而且仅在Windows XP中使用公共IP时才会出现此问题。

所以,我的连接信息是这样的:

crConnectionInfo.ServerName = "202.70.xx.xx\\SQLEXPRESS"; 
crConnectionInfo.DatabaseName = "DBNAME";
crConnectionInfo.UserID = "USER";
crConnectionInfo.Password = "PASS";

我还尝试使用创建报告向导创建报告,它也无法使用公共IP(202.70.xx.xx事物)找到我的数据库服务器。

使用本地数据库服务器,我的代码在WinXP中完美运行。

更多帮助不胜感激;)

编辑2:

哦,我忘记了。我也尝试使用真实服务器名称而不是服务器的公共IP,但无济于事

3 个答案:

答案 0 :(得分:0)

这可能是由于没有sql server本机客户端引起的。尝试在Windows XP计算机上安装它:

http://download.microsoft.com/download/2/7/c/27c60d49-6dbe-423e-9a9e-1c873f269484/sqlncli.msi

答案 1 :(得分:0)

这可能是简单的SQL服务器或防火墙配置问题。可能你的W7和XP计算机有不同的IP地址,甚至可能是子网或网络?

答案 2 :(得分:0)

非常简单......当我们使用域网络以及受限制的网络时,会发生此问题。

在任何XP SYSTEM中安装crystal report designer。然后更新数据源位置(参考图像)。enter image description here

然后建立项目并使用......享受....