PDA

View Full Version : تعریف کانکشن استرینگ در برنامه



amir_masoud
چهارشنبه 26 اردیبهشت 1386, 01:15 صبح
سلام
می خواستم بدونم تویه برنامه های تحت ویندوز به چه صورت می شه یه جا کانکشن استرینگ رو ساخت و تویه تمام قسمتهای برنامه از اون ایتفاده کرد .( تویه برنامه های تحت وب می شه تویه web.config کانکشن رو ساخت و تویه تمام صفحات استفاده کرد . ) ممنون می شم با یه نمونه کد منو راهنمایی کنید .
فرض کنید نام دیتابیس db1‌باشه و uid=sa و pwd=1234 در کانکشن استرینگ تعریف بشن . روی سیستمهایی که می خوایم برنامه نصب بشه باید حتما sqlserver رو با user و password تعریف شده در کانکشن استرینگ نصب کرد ؟
مورد بعدی این که برایه برایه ساخت جداول در سیستم مقصد که می خوایم برنامه مون روی اون اجرا بشه . باید از جداول اسکریپت تهیه بشه و اون اسکریپت رو اجرا کرد و جداول رو ساخت یا روش دیگه ای هم وجود داره ؟

با تشکر

Seivan
چهارشنبه 26 اردیبهشت 1386, 02:07 صبح
از لحاظ Security و Portability یکی از بهترین راه حلها به صورت زیر می تواند باشد:

1- در رجیستری مربوط به ویندوز کلیدهایی برای برنامه خود ایجاد کنید و برای هرکدام از فیلدهای نام پایگاه داده ، نام کاربری و کلمه عبور کلیدهایی ایجاد نمایید.(بهتر است این مقادیر به صورت encrypt شده در رجیستری ذخیره شوند)

2- در یکی از کلاس هایی برنامه تان یک رشته به صورت public static ایجاد نمایید که این فیلد برای ذخیره ConnectionString بکار می رود. و در تمام برنامه از همان فیلد برای برقراری ارتباط استفاده نمایید.
3- تابعی در برنامه بنویسید که موقع شروع برنامه مقادیر "نام پایگاه داده"، "نام کاربری" و "کلمه عبور" را از رجیستری خوانده سپس ConnectionString را ایجاد نموده و در فیلدی که در مرحله 2 بحث شد قرار دهد.
4- در برنامه Setup نرم افزار نیز کدهایی را قرار دهید که در رجیستری کامپیوتر مقصد کلید های مورد استفاده را ایجاد کرده و مقادیر پیش فرض آنها را برقرار نماید.

برای ارتباط با رجیستری کلاس هایی در خود #C وجود دارد.

اما این امکان نیز وجود دارد که فایل app.config را ایجاد نموده و مقادیر ConnectionString را در آن ذخیره کرد که خود #C نیز کلاس هایی خاص برای دسترسی به این فایل دارد.

در مورد سوال دوم نیز بهتر است ابتدا از پایگاه داده BackUp تهیه نموده و در کامپیوتر مقصد آنرا Restore کرد. که می توان در برنامه Setup نرم افزارتان کد Sql را برای Restore کردن پایگاه داده اجرا کنید.

hdv212
چهارشنبه 26 اردیبهشت 1386, 02:59 صبح
شما در app.config هم میتونید connectionString رو ذخیره کنید، بدین شکل که در محیط vs به ترتیب project>projectName properties رو انتخاب و از بخش سمت چپ روی setting کلیک نمایید، با یه جدول تقریبا خالی روبرو میشید که میتونید داده هاتونو تعریف کنید و بهش مقدار بدید، اگه توی پروژتون از طریق ide یک کانکشن ایجاد کرده باشید، اینجا یه متغیر تعریف میشه که میتونید اسم متغیر رو همراه با اطلاعات دیگه از قبیل value بخونید(معمولا اسم این متغیر dataBaseNameConnectionString هست)،
حالا توسط کد زیر میتونید به متغیرهایی که در app.config ذخیره کردید دسترسی داشته باشید :
string con = Properties.Settings.Default.Database1ConnectionStr ing;

با این کد هم میتونید مقادیر مربوط به متغیر ها در app.config رو تغییر بدید :
Properties.Settings.Default.Database1ConnectionStr ing = con;
Properties.Settings.Default.Save();

حتما دقت کنید که برای اینکه بتونید مقدار متغیرهایی رو که در app.config معرفی کردید، تغییر بدید در ستون Scope، حتما قسمت user را انتخاب کنید، اگه application باشه نمیتونید مقدارش رو در برنامه عوض کنید.

موفق باشید