PDA

View Full Version : تنظیمات کانکشن اتچ شده



sobhan1990
سه شنبه 01 اسفند 1391, 19: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 ارتباط برقرار کردم.

با سپاس

alias136790
سه شنبه 01 اسفند 1391, 21:59 عصر
سلام . من فکر میکنم اگه دیتابیستون رو یه بار درست به اس کیو ال اتچ کنین نیازی نیست که برای هر بار استفاده از کریستال ریپورت ازش مسیر دیتابیس روبخواین.
و اینکه فکر میکنم هنوز دیتابیستون رو اتچ نکردین. چون کد بالایی تون نشون میده که برای هر بار استفاده از دیتابیس از برنامه مسیر دیتابیس رو میگیرین.
یه سرچ درباره اتچ کردن تو نت بزن.