PDA

View Full Version : سوال: چگونگی تنظیم رشته اتصال برای اتصال به دیتابیس در یک سیستم دیگه در Lan



Programmer 1
چهارشنبه 11 اردیبهشت 1392, 20:13 عصر
سلام دوستان،

خیلی وقت پیش برنامه ای با سی شارپ برای جایی نوشتم که برنامه در چند نسخه بود و تحت شبکه، هر نسخه ای از برنامه از طریق Connection String ای به سیستم اصلی متصل میشه و اطلاعات مورد نظر رو از دیتابیس دریافت میکنه. برنامه رو هم طوری تعریف کردم که اگه یه وقتی به هر دلیلی مشکلی برای اتصال با دیتابیس پیش اومد به محض اجرای برنامه، پنجره کانکشن استرینگ نمایش داده میشه که کاربر با مقدار گذاری پارامترهای مختلف رشته اتصال رو مجددا میسازه و به سیستم اصلی متصل میشه، حالا بنده رو به عنوان کاربری در نظر بگیرید که به محض اجرای برنامه با این پنجره برخورد میکنه و یادش رفته چه پارامترهایی رو برای اتصال به سرور باید مقدار دهی کنه، لطفا راهنماییی کنید:

http://i.stack.imgur.com/BcuHO.jpg

پارامترهای که من وارد کردم اینها بود:

Data Source: Microsoft SQL Server (SqlClient)
Server name: [Main System IP Address]
User ID:[User name]
Password:[Password]
Library:DBMSSOCN

ضمنا بعضی از گزینه ها رو باید از قسمت Advanced تنظیم کنیم.

نمی دونم مشکل از کجاست؟ جالبه ها خودم تو برنامه ای که ساختم موندم.

دوستان مطمئنا مشکل از هیچ چیز دیگه ای به جز تنظیم رشته اتصال نیست چرا؟ چون سیستم دیگه دقیقا با تنظیم پارامترهای همین پنجره به خوبی به سیستم اصلی متصله و مشکلی نداره ولی فقط همین سیستم مشکل داره، قضیه اش هم این بوده که برای چند لحظه سیستم اصلی کابل شبکه اش قطع بوده و کاربر سیستم این طرفی به محض اجرای برنامه با این پنجره روبرو میشه و پارامترها رو تغییر میده و کانکشن استرینگ اشتباهی ذخیره میشه و وقتی کابل شبکه سیستم اصلی متصل میشه، برنامه با آخرین کانکشن استرینگی که ذخیره کرده می خواد به سیستم اصلی متصل بشه که مسلما یک رشته اتصال اشتباه است!

nima.sh
چهارشنبه 11 اردیبهشت 1392, 20:32 عصر
سلام دوست عزیز....
شما از اول رو setting هر کلاینت کانکشن استرینگ رو set کن،که از اون بخونه،در این صورت با قطع شدن کابل شبکه یا هر مشکل دیگه برنامه اول کانکشنی که تو setting دخیره شده رو تست میکنه،اگرنه،یه کانکشن از کاربر میخواد....
موفق باشی...

Programmer 1
پنج شنبه 12 اردیبهشت 1392, 09:44 صبح
سلام دوست عزیز....
شما از اول رو setting هر کلاینت کانکشن استرینگ رو set کن،که از اون بخونه،در این صورت با قطع شدن کابل شبکه یا هر مشکل دیگه برنامه اول کانکشنی که تو setting دخیره شده رو تست میکنه،اگرنه،یه کانکشن از کاربر میخواد....
موفق باشی...
راه حل ها زیاده ولی الان دیگه در شرایطی نیستم که بخوام سورس کد رو تغییر بدم و فقط می خوام این مشکل حل بشه.

majjjj
پنج شنبه 12 اردیبهشت 1392, 09:55 صبح
یک کلاینت دیگه با همون تنظیمات پیدا کن و فایل اون رو کپی کن و تو این که مشکل داره استفاده کن البته شما نگفتی چجوری کدت رو برای اتصال نوشتی از کد کردن هم استفاده شده و اگه استفاده شده به چه شکل بوده

کامبیز اسدزاده
پنج شنبه 12 اردیبهشت 1392, 11:29 صبح
خب من یک پیشنهاد میکنم !!! در واقع برنامه شما در قسمت اتصال به دیتابیس باید داینامیک و پویا باشد !!! برای این مورد روشی که رفتین از نظر من کمی درست نیست...
بهترین روش برای حل این مشکل این هستش شما یک Class بنویسی فقط برای اتصال ه دیتابیس و در این کلاس تمامی متغیر هایی که مقدار های Name , Password , IP , Port اینار میگیرن رو از طریق بازخوانی از طریق یک فایل خارجی به نام Config دریافت کنه در این صورت شما نباید هربار دخالتی رو در سورس برنامه یا کانکشن برنامه انجام دهید‌ ! منظور من این هست بخش Config دیتابیس رو کاملا مجزا و پویا طراحی کنید تا کاربر بتونه به هر نوع و هر کانکشنی که خواست دیتابیس رو راهنمایی کنه.

Programmer 1
پنج شنبه 12 اردیبهشت 1392, 16:45 عصر
خب من یک پیشنهاد میکنم !!! در واقع برنامه شما در قسمت اتصال به دیتابیس باید داینامیک و پویا باشد !!! برای این مورد روشی که رفتین از نظر من کمی درست نیست...
بهترین روش برای حل این مشکل این هستش شما یک Class بنویسی فقط برای اتصال ه دیتابیس و در این کلاس تمامی متغیر هایی که مقدار های Name , Password , IP , Port اینار میگیرن رو از طریق بازخوانی از طریق یک فایل خارجی به نام Config دریافت کنه در این صورت شما نباید هربار دخالتی رو در سورس برنامه یا کانکشن برنامه انجام دهید‌ ! منظور من این هست بخش Config دیتابیس رو کاملا مجزا و پویا طراحی کنید تا کاربر بتونه به هر نوع و هر کانکشنی که خواست دیتابیس رو راهنمایی کنه.
خب کاری که بنده هم کردم دقیقا همینه، به محض بروز مشکلی در ارتباط (چه عمدی و چه غیر عمد) این اطلاعات رو به صورت ویژوال از کاربر دریافت میکنه.

Programmer 1
پنج شنبه 12 اردیبهشت 1392, 16:46 عصر
یک کلاینت دیگه با همون تنظیمات پیدا کن و فایل اون رو کپی کن و تو این که مشکل داره استفاده کن البته شما نگفتی چجوری کدت رو برای اتصال نوشتی از کد کردن هم استفاده شده و اگه استفاده شده به چه شکل بوده
پیشنهاد بسیار خوبی بود. ممنونم.