PDA

View Full Version : دسترسی به دیتابیس های مختلف



mojtaba0912433
شنبه 29 اسفند 1394, 06:23 صبح
با سلام
من برای ارتباط به دیتابیس های مختلف از روش زیر استفاده میکنم،به جای نام دیتابیس مسیر و نام اون را که در فرم صفحه اصلی موجود هست را مینویسم،این کار سرعت برنامه را به شدت پایین میاره .میخاستم بدونم روش دیگه ای برای این کار هست یا نه.
دیتابیس های موجود مال سالهای مختلف هست که هر بار باید به یکیشون وصل بشم ممنون از راهنمایی که میکنید
frmmain fm = new frmmain();

// con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb ";

con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"+fm.txtdir2.Text+"' ";

nunegandom
شنبه 29 اسفند 1394, 06:44 صبح
سلام. شاید بهتر باشه موقع اجرای برنامه یکی یکی همه رو به صورت نامحسوس وصل کنی با thread یا backgroundworker اگه بشه

Mahmoud Zaad
شنبه 29 اسفند 1394, 07:37 صبح
سلام
نباید مشکلی باشه، شاید به خاطر نمونه سازی از فرم اصلی هست. شما در یه کلاس یه متغیر public static برای کانکشن استرینگ ایجاد کنید و هر بار که دیتابیس رو عوض می کنید کانکشن رو توی اون ذخیره کنید و از همین متغیر استفاده کنید ببینید تغییری ایجاد میشه یا نه.

mojtaba0912433
شنبه 29 اسفند 1394, 07:42 صبح
ممنون از جوابتون متوجه منظور از نامحسوس نشدم.البته کند شدن به خاطر این قسمت هست که مدش را در پایین آوردم .برنامه سه لایه هست و وصل شدن به دیتابیس در این لایه هست
frmmain fm = new frmmain();

mojtaba0912433
شنبه 29 اسفند 1394, 07:46 صبح
سلام
نباید مشکلی باشه، شاید به خاطر نمونه سازی از فرم اصلی هست. شما در یه کلاس یه متغیر public static برای کانکشن استرینگ ایجاد کنید و هر بار که دیتابیس رو عوض می کنید کانکشن رو توی اون ذخیره کنید و از همین متغیر استفاده کنید ببینید تغییری ایجاد میشه یا نه.
ممنون دوست عزیز میشه مثال بزنید پظ.ر میشه این کار را کرد .دقیقا فقز به خاطر نمونه سازی از فرم سرعت میاد پایین وقتی مستقیم هم وصل باشم اگر اون کد نمونه سازی فرم بالای کانکشن باشه بازم سرعت پایینه ولی وقتی اون را برمیدارم مشکل حل میشه

Mahmoud Zaad
شنبه 29 اسفند 1394, 08:00 صبح
یه کلاس به پروژه اد میکنید بعد داخلش یه متغیر به شکل زیر تعریف میکنید:
public static string ConnectionString;
خب، حالا کاربر یا فایل رو انتخاب میکنه یا اینکه اسمش رو توی تکست باکس می نویسه و دکمه تایید رو میزنه، در همین دکمه تایید شما مجدداً متغیر بالا رو مقدار دهی میکنید. مثلا اگر اسم کلاسی که در مرحله قبل ایجاد کردید Class1 باشه:
Class1.ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"+fm.txtdir2.Text+"' ";

حالا در زمانیکه نیاز به کانکشن استرینگ هست مثل زیر می نویسید:
con.ConnectionString=Class1.ConnectionString;