У меня есть простое приложение, которое подключается к базе данных Access (.mdb).Я подключил файл базы данных к приложению, используя только код.Строка подключения выглядит следующим образом:
"Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = | DataDirectory | \ CentreDB.mdb; Jet OLEDB: Пароль базы данных = pass"
Для целей проектирования я подключил файл базы данных к отчету Crystal Report, используя параметр «Подключить файл базы данных» в мастере отчетов.Но мне нужно использовать код для динамического назначения базы данных для отчета Crystal, чтобы у меня не возникало проблем при развертывании его на клиентском компьютере.Я попытался использовать этот код ниже.
public void ViewReport(FileInfo crFileInfo) // path\filename.rpt
{
ConnectionInfo crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = "YOUR SERVER NAME";
crConnectionInfo.DatabaseName = "YOUR DATABASE NAME";
crConnectionInfo.UserID = "YOUR DATABASE USERNAME";
crConnectionInfo.Password = "YOUR DATABASE PASSWORD";
// CrystalReportViewer control
crViewer.ReportSource = ReportSourceSetup(crFileInfo, crConnectionInfo);
crViewer.Refresh();
}
ReportDocument ReportSourceSetup(FileInfo crFileInfo, ConnectionInfo crConnectionInfo)
{
ReportDocument crDoc = new ReportDocument();
TableLogOnInfos crTableLogonInfos = new TableLogOnInfos();
TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
Tables crTables;
crDoc.Load(crFileInfo.FullName);
// Each table in report needs to have logoninfo setup:
crTables = crDoc.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
{
crTableLogonInfo = crTable.LogOnInfo;
crTableLogonInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogonInfo);
}
return crDoc;
}
Я нашел этот пример в сети, но не могу заставить его работать.Мне нужно знать, где именно это нужно разместить и что я должен передать для «ИМЯ ВАШЕГО СЕРВЕРА», «ИМЯ ВАШЕЙ БАЗЫ ДАННЫХ», поскольку я использую файл базы данных только с паролем.Я думаю, что объект FileInfo несет путь к базе данных.Пожалуйста, помогите мне, если это возможно.Любая помощь будет принята с благодарностью.