数据连接方面没问题。
//设置连接串
ConnectionInfo crConnectionInfo;
crConnectionInfo = new ConnectionInfo();
crConnectionInfo.DatabaseName = "DatabaseName";
crConnectionInfo.ServerName = "ServerName";
crConnectionInfo.Password = "Password";
crConnectionInfo.UserID = "UserID"; //Database crDatabase;
Tables crTables;
TableLogOnInfo crTableLogOnInfo;
//crDatabase = crReportDocument.Database;
crTables = crDatabase.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
{
crTableLogOnInfo=crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
try
{
crTable.Location =crConnectionInfo.DatabaseName+".dbo."+crTable.Name ;
}
catch{}
crTable.ApplyLogOnInfo(crTableLogOnInfo);
}
//设置连接串
ConnectionInfo crConnectionInfo;
crConnectionInfo = new ConnectionInfo();
crConnectionInfo.DatabaseName = "DatabaseName";
crConnectionInfo.ServerName = "ServerName";
crConnectionInfo.Password = "Password";
crConnectionInfo.UserID = "UserID"; //Database crDatabase;
Tables crTables;
TableLogOnInfo crTableLogOnInfo;
//crDatabase = crReportDocument.Database;
crTables = crDatabase.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
{
crTableLogOnInfo=crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
try
{
crTable.Location =crConnectionInfo.DatabaseName+".dbo."+crTable.Name ;
}
catch{}
crTable.ApplyLogOnInfo(crTableLogOnInfo);
}
try
{
crTable.Location =crConnectionInfo.DatabaseName+".dbo."+crTable.Name ;
}
catch{}
--〉
crTableLogOnInfo.TableName = crTable;
只有ServerName不同的时候才会出错。
奇怪.以前用Crystal Report 7.0时可以将报表中的数据源部分置空。动态传入服务器、数据库就没有问题。现在用的是9.2版。真晕!