PDA

View Full Version : تغییر پایگاه داده در زمان اجرا برنامه



mrs Izadi
دوشنبه 08 تیر 1388, 15:01 عصر
سلام
چگونه میتوانیم در زمان اجرای برنامه تحت شرایط خاص پایگاه داده برنامه را تغییر دهیم و اطلاعات را از پایگاه دیگری واکشی کنیم؟
من برای این کار از روشی که در پست زیر گفته شده همچنین تغییر app.config استفاده کردم اما زمانی که dataset را fill میکنم اطلاعات همان پایگاه قبلی واکشی میشود.
http://barnamenevis.org/forum/showthread.php?t=24180 (http://barnamenevis.org/forum/showthread.php?t=24180)

NewFoxStudent
دوشنبه 08 تیر 1388, 17:21 عصر
دوست عزیز این تغییر دیتابیس دائمی یا فقط برای گرفتن اطلاعات تو همون لحظه انجام میشه
برای هر کدوم از این حالتها چندتا راه حل هست
شما تو کدوم حالت میخواهید این کار انجام بشه

mrs Izadi
چهارشنبه 10 تیر 1388, 09:16 صبح
در همون لحظه فقط برای گرفتن یک گزارش و بعد از اون به حالت قبل برگردد.

NewFoxStudent
چهارشنبه 10 تیر 1388, 18:07 عصر
دلیل اینکه از روش اون لینک نمیتونید استفاده کنید اینه که متد Fill نیازی به باز کردن اتصال توسط شما نداره و همین باعث میشه که شما نتونید دیتابیس رو عوض کنید چون باید قبل از این کار به بانک اصلی متصل باشید
احتمال داره با کمی تغییر روی کدتون بتونید از اون روش استفاده کنید

راه دیگه اینه که توی کوئری قبل از اسم جدول اسم دیتابیس و Rule رو بیاری مثل این

Select * From Attendence.dbo.Personelیا


Select * From Attendence..Personel

تو روش دوم شما به یه دیتابیس دیگه وصلی و با آوردن نام دیتابیس مورد نظرت Sql میفهمه که باید از کجا جواب بگیره
توی نرم افزار هایی که از چندتا دیتابیس استفاده میکنن این روش مناسبه

mrs Izadi
پنج شنبه 11 تیر 1388, 23:29 عصر
از راهنماییتون ممنون اما من از این روش نمیتونم استفاده کنم . چون تحت شرایط خاصی کاربر از دیتا بیس آرشیو شده گزارش میگیرد. این گزارش از جدولی با این نام ولی از یک دیتابیس دیگر است در واقع من از یک استور برای گزارش گیری استفاده میکنم که گاهی روی دیتابیس اصلی و گاهی روی دیتا آرشیو اجرا میشود . پس حتما لازم است که Connection تغییر کنه. اونم ظاهرا حتما نیاز به Restar برنامه داره.!!!!
شما راه حل دیگه ای سراغ ندارید؟

h_r_sh
جمعه 12 تیر 1388, 03:22 صبح
دوتا ConnectionString تعريف كنيد. هر كدام مربوط به يك Database . در صورت نياز هنگام تعريف شيئي Connection از ConnectionString مربوطه استفاده كنيد.

vandermond
جمعه 12 تیر 1388, 06:33 صبح
روش دوستمون كه گفتند 2(يا بيشتر) تا Connection String تعريف كنيد ، روش بسيار خوبي هستش ولي اگه تعداد اونها زياد بشه رو حافظه خيلي اثر ميزاره. شما ميتونيد يك قسمت از اون رشته رو تغيير بديد. مثلا قسمت data source رو . ولي اگه در حد همون سه چهار تا آدرس ميخواين همون روش تعريف چند Connection String بهترين روش هست به نظر من.