我正在开发与朋友的本地应用程序,我们正在使用svn,但是我们有水晶报表,但它保存了我的一位朋友在提交时使用的最后一台服务器。我尝试使用这段代码以编程方式更改服务器,但它不起作用:S水晶报表没有以编程方式查询服务器
*更新:似乎.rpt保留服务器名称的历史记录,并以某种方式似乎不清除列表,所以我的朋友的电脑“\ SQLEXPRESS”还在那里,我似乎无法将其清除:?S”
string nombre = WindowsIdentity.GetCurrent().Name.ToString().Split('\\')[1];
ReportDocument cryRpt = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables ;
//cryRpt.SetDatabaseLogon(string.Empty,string.Empty, nombre + "\\sqlexpress","trupp");
cryRpt.Load(FinalPath);
crConnectionInfo.ServerName = nombre + "\\sqlexpress";
crConnectionInfo.IntegratedSecurity = true;
crConnectionInfo.UserID = string.Empty;
crConnectionInfo.Password = string.Empty;
crConnectionInfo.DatabaseName = "trupp";
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
解决我的问题,拯救了我的生命!谢谢 – 2017-07-07 17:36:39