PDA

View Full Version : رشته اتصال برای تغییر خودکار مسیر بانک



sara.pazhrang
دوشنبه 18 تیر 1386, 11:00 صبح
با سلام
اگر بخواهیم در برنامه رشته اتصالی بسازیم که بعدا با کپی کردن برنامه در مسیری دیگر خودبخود با مسیر جدید کار کند ، چه کار باید بکنیم.
من در برنامم یک sp گذاشتم که هر بار با تغییر مسیر اونرو تغییر می دهم و خودبخود مسیررشته اتصالی را که در قسمت setting تعریف کرده ام تغییر می دهد.

gs_connectionString = "Data Source=" + gs_serverName + "\\SQLEXPRESS;database=" +
Properties.Settings.Default.MyDRPToolConnectionStr ing;
یه جا خوندم که باید رشته اتصال به صورت زیر با Application.StartupPath تعریف بشه.آیا این درسته؟؟

OleDbConnection Cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\myDB.mdb");
اگر درسته برای sqlclient چه جوریه؟؟؟؟

once4ever
دوشنبه 18 تیر 1386, 11:34 صبح
بله درسته
هربار اول برنامه چک کن اگه سرور پیدا نشد، مسیر از کاربر بگیره

hdv212
دوشنبه 18 تیر 1386, 11:38 صبح
به طور کلی ساختار موتور oledb و sqlClient با هم فرق میکنه، ولی اگه میخواین دیتابیس sql express شما در فایل startUppath برنامتون قرار بگیره، بایستی هر وقت برنامه تون جای دیگه کپی میشه، توسط کد یا sql management studio دیتابیستون رو از sqlExpress تون detach کنید و دوباره با آدرس جدید attach کنید، اینطوری فکر کنم مشکلتون حل میشه.

sara.pazhrang
دوشنبه 18 تیر 1386, 11:45 صبح
به طور کلی ساختار موتور oledb و sqlClient با هم فرق میکنه، ولی اگه میخواین دیتابیس sql express شما در فایل startUppath برنامتون قرار بگیره، بایستی هر وقت برنامه تون جای دیگه کپی میشه، توسط کد یا sql management studio دیتابیستون رو از sqlExpress تون detach کنید و دوباره با آدرس جدید attach کنید، اینطوری فکر کنم مشکلتون حل میشه.
یک sp برای detach گذاشتم و با اجرای برنامه اول detach می کنه و بعد sp_attach اجرا میشه.اما میخوام با کپی کردن برنامه در جای دیگر بدون اینکه sp رو تغییر بدم خودش تغییر کنه.
آیا روشی یا کدی وجود داره که خودش مسیر دیتابیس رو عوض کنه؟؟؟میشه مثال بزنید.

sara.pazhrang
دوشنبه 18 تیر 1386, 11:48 صبح
اگر بخوام از دستور Application.StartupPath استفاده کنم برای SQLclient چه تغییری می کنه؟

sara.pazhrang
دوشنبه 18 تیر 1386, 12:48 عصر
خودم پیدا کردم.دیگه لازم نیست در قسمت setting رشته اتصال رو تعریف کنم.بلکه رشته اتصال رو به صورت زیر مینویسم.

gs_connectionString = "Data Source=" + gs_serverName +
"\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Dat abase\\sqlcmds\\DRPToolDB.mdf" +
";Integrated Security=True;Connect Timeout=30;User Instance=True";

فعلا که هر جا کپی میکنم جواب میده.انشاءالله این یکی دیگه درسته!!:لبخند:

once4ever
دوشنبه 18 تیر 1386, 13:25 عصر
برای اینکه کاملا درست باشه بجای

|DataDirectory|
همون که بهش گیر داده بودی بزار ;)

Application.StartupPath

hdv212
دوشنبه 18 تیر 1386, 14:15 عصر
خدا رو شکر که مشکلت حل شد و خانواده ای از نگرانی در اومدن!
موفق باشید.