我需要帮助。这是我的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,但无济于事答案 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
然后建立项目并使用......享受....