У меня несколько серверов и баз данных (разные имена), но все имена таблиц баз данных совпадают.Я хотел передать информацию о входе в базу данных в отчет Crystal во время выполнения.
Я попытался указать имя сервера и имя базы данных для отчета Crystal во время выполнения.Пользователь будет выбирать сервер, который он желает, перед входомНо отчет Crystal, кажется, не распознает имя сервера и имя базы данных, предоставленные кодом.А также я попробовал несколько кодов, которые я нашел в Google, которые, кажется, очень близки к тому, что я хотел, но есть 1 строка, в которой вышла ошибка, которую я не смог понять.
private Database crDatabase;
private Tables crTables;
private CrystalDecisions.CrystalReports.Engine.Table crTable;
private TableLogOnInfo crTableLogOnInfo;
private ConnectionInfo crConnectionInfo = new ConnectionInfo();
private CrystalReport1 crReportDocument = new CrystalReport1();
public void setLogonInfo()
{
crConnectionInfo.ServerName = "'" + lblServer.Text.Trim() + "'";
crConnectionInfo.DatabaseName = "'" + lblDatabase.Text.Trim() + "'";
crConnectionInfo.UserID = "user";
crConnectionInfo.Password = "user123";
crDatabase = crReportDocument.Database;
crTables = reportdocument.Database.Tables;
for (int i = 0; i < crTables.Count; i++)
{
crTable = **crTables**;
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo =
crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
crTable.Location = crConnectionInfo.DatabaseName + ".dbo." + crTable.Location.Substring(crTable.Location.LastIndexOf(".") + 1);
}
CrystalReportViewer.ReportSource = crReportDocument;
}
Внутри дляфункция, crTable = crTables;вышли сообщения об ошибках.«Невозможно скрыть преобразование типа« CrystalDecisions.CrystalReports.Engine.Tables »в« CrystalDecisions.CrystalReports.Engine.Table »»