sobhan1990
سه شنبه 01 اسفند 1391, 20:29 عصر
سلام
برای اجرای برنامه در سیستم مقصد من کانکشنم به دیتابیس رو به صورت زیر تعریف کردم:
@"Data Source=.\SQLEXPRESS; AttachDbFilename=" + Application.StartupPath +
@"\DataBase\Database.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True";
و میخوام که ارتباط با کریستال ریپورت را در حین اجرای برنامه تغییر بدم
برای اینکار این کد رو پیدا کردم:
SQLReport report = new SQLReport();
string zServer = @"SERVER_NAME";
string zDatabase = @"DATABASE";
string zUsername = @"USER";
string zPassword = @"PASSWORD";
ConnectionInfo ciReportConnection = new ConnectionInfo();
ciReportConnection.ServerName = zServer;
ciReportConnection.DatabaseName = zDatabase;
ciReportConnection.UserID = zUsername;
ciReportConnection.Password = zPassword;
foreach (Table table in report.Database.Tables) {
table.LogOnInfo.ConnectionInfo = ciReportConnection;
table.ApplyLogOnInfo(table.LogOnInfo);
}
foreach (ReportDocument subrep in report.Subreports) {
foreach (Table table in subrep.Database.Tables) {
table.LogOnInfo.ConnectionInfo = ciReportConnection;
table.ApplyLogOnInfo(table.LogOnInfo);
}
}
if (this.crystalReportViewer1.LogOnInfo != null) {
TableLogOnInfos tlInfo = this.crystalReportViewer1.LogOnInfo;
foreach (TableLogOnInfo tbloginfo in tlInfo) {
tbloginfo.ConnectionInfo = ciReportConnection;
}
}
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.Refresh();
حالا مشکلم اینجاست که توی کد بالا برای تغییر دیتاسورس کریستال ریپورت در حین اجرا، چطوری به فایل دیتابیس آدرس بدم؟
مثل کانکشنم که از AttachDbFilename استفاده کردم و با دیتابیس Database.mdf ارتباط برقرار کردم.
با سپاس
برای اجرای برنامه در سیستم مقصد من کانکشنم به دیتابیس رو به صورت زیر تعریف کردم:
@"Data Source=.\SQLEXPRESS; AttachDbFilename=" + Application.StartupPath +
@"\DataBase\Database.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True";
و میخوام که ارتباط با کریستال ریپورت را در حین اجرای برنامه تغییر بدم
برای اینکار این کد رو پیدا کردم:
SQLReport report = new SQLReport();
string zServer = @"SERVER_NAME";
string zDatabase = @"DATABASE";
string zUsername = @"USER";
string zPassword = @"PASSWORD";
ConnectionInfo ciReportConnection = new ConnectionInfo();
ciReportConnection.ServerName = zServer;
ciReportConnection.DatabaseName = zDatabase;
ciReportConnection.UserID = zUsername;
ciReportConnection.Password = zPassword;
foreach (Table table in report.Database.Tables) {
table.LogOnInfo.ConnectionInfo = ciReportConnection;
table.ApplyLogOnInfo(table.LogOnInfo);
}
foreach (ReportDocument subrep in report.Subreports) {
foreach (Table table in subrep.Database.Tables) {
table.LogOnInfo.ConnectionInfo = ciReportConnection;
table.ApplyLogOnInfo(table.LogOnInfo);
}
}
if (this.crystalReportViewer1.LogOnInfo != null) {
TableLogOnInfos tlInfo = this.crystalReportViewer1.LogOnInfo;
foreach (TableLogOnInfo tbloginfo in tlInfo) {
tbloginfo.ConnectionInfo = ciReportConnection;
}
}
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.Refresh();
حالا مشکلم اینجاست که توی کد بالا برای تغییر دیتاسورس کریستال ریپورت در حین اجرا، چطوری به فایل دیتابیس آدرس بدم؟
مثل کانکشنم که از AttachDbFilename استفاده کردم و با دیتابیس Database.mdf ارتباط برقرار کردم.
با سپاس