برگزیده های پرشین تولز

اتصال به database

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
سلام علیکم،

اصولا وقتی توی VS.Net پروژه هایی می نویسیم که به database وصل می شن (چه webform چه winform) برای وصل کردن هر فرمی به database یک connection به فرم اضافه می کنیم که یکی از property هاش connection string هست و باید توش چیزهایی مثل username و password بنویسیم و این کار رو برای همه فرمها تکرار کنیم. حالا اگه یه روز مجبور شیم database password رو عوض کنیم باید connection string رو تو همه فرم ها هم اصلاح کنیم.

حالا من می خوام ببینم نمیشه این connection یه جای متمرکز ساخته بشه و همه فرم ها ازش استفاده کنن که اگر به روزی هم خواستیم عوضش کنیم تو همون یه جا این کارو بکنیم؟

البته فکر کنم از طریق کد نویسی و module ها بشه این کارو کرد ولی من منظورم اینه که این connection رو تو حالت design بسازیم نه با کدنویسی.

مرسی.
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
یقینا میشه توی یک کلاس بصورت یک متغییر پابلیک گذاشت و در همه کلاسها استفادش کرد.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
بهتره که توی وب کانفیگ اه بذاری :
این روز بذار توی وب web.config :

کد:
<configuration>
<appSettings>
    <add key="connectionstring" 
        value="Integrated Security=SSPI;
        Initial Catalog=Northwind;
        Data Source=MyServer\NetSDK" />
</appSettings>


این دوتا فضای نام رو به سرس جایی که میخوای کانکشن رو استفاده کنی اضافه کن :

کد:
System.Collections.Specialized
System.Configuration

بازیابی در vb

کد:
Dim myvar As String 
myvar=ConfigurationSettings.AppSettings("connectionstring")


بازیابی در #C :

کد:
string myvar;
myvar=ConfigurationSettings.AppSettings["connectionstring"];

تمام :happy:
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از H_R :
بهتره که توی وب کانفیگ اه بذاری :
این روز بذار توی وب web.config :

کد:
<configuration>
<appSettings>
    <add key="connectionstring" 
        value="Integrated Security=SSPI;
        Initial Catalog=Northwind;
        Data Source=MyServer\NetSDK" />
</appSettings>


این دوتا فضای نام رو به سرس جایی که میخوای کانکشن رو استفاده کنی اضافه کن :

کد:
System.Collections.Specialized
System.Configuration

بازیابی در vb

کد:
Dim myvar As String 
myvar=ConfigurationSettings.AppSettings("connectionstring")


بازیابی در #C :

کد:
string myvar;
myvar=ConfigurationSettings.AppSettings["connectionstring"];

تمام :happy:
Excellent!
اصلا یادم نبود، بهترین راه همینه، کد هم تغییری نمیکنه.
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
از هر دوتون خیلی ممنون،

مسأله اینه دوستان که استفاده کردن از روشی مثل گذاشتن connectionstring توی web.config یا همون ساختن connection توی یه module جداگونه که خودم هم گفتم باعث می شه connectionstring تا قبل از اجرای برنامه (یا همون حالت design) مقدار نداشته باشه و مسلماً اگر بخوایم مثلاً توی form یه dataadaper و چندتا command و خلاصه هر چیزی که یه property به نام connection داره (و تا قبل از مقدار گرفتن این property هم بقیه property هاش set نمیشن!) بذازیم، همه این control ها رو باید با کد نویسی بسازیم. حتماً هم می دونید که drag کردن یه مثلاً adapter از توی toolbox روی فرم و همونجا set کردن propertyهاش از طریق پنجره property کجا و کد نویسی برای ساختن همون adapter کجا!!!

این که من نوشتم می خوام این کار رو تو حالت design و نه با کدنویسی انجام بدم به خاطر اینه که یه connectionstring قابل استفاده در زمان design داشته باشم.

حالا شاید هم من متوجه روش شما نشدم و دارم اشتباه می کنم. اگه اینطوره لطفاً بیشتر راهنمایی کنید.

مرسی.
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
دقيقا هموني كه دوستمون گفت
اگه ديده باشي يه آموزش ساخت سي ام اس با دات نت گزاشته بودم
تو اونجا هم من تو وب كانفيگ ذخيره ميكردم و از اونجا ميخوندم
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
به نقل از mehdvirus :
دقيقا هموني كه دوستمون گفت
اگه ديده باشي يه آموزش ساخت سي ام اس با دات نت گزاشته بودم
تو اونجا هم من تو وب كانفيگ ذخيره ميكردم و از اونجا ميخوندم
آقا خیلی تلگرافی نوشتی، من که منظورتو نفهمیدم. می شه بیشتر توضیح بدی؟
توی web.config ذخیره می کنیم درست، ولی چه چوری موقع design بخونیمش؟!!
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
این آوارتار جدیدت بامزت ها !! مبارک باشه (ببخشید ربطی به موضوع نداشت ! )
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
فورم خراب شده یا ویندوز منه !!! من پست های جدید رو وقتی میبینم که خودم یه پست بکنم !!!!
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
به نقل از mehdvirus :
خوب توی این تاپیک آموزشی هم که شما گذاشتی همه oledbcommand هات رو از طریق کدنویسی به وجود آوردی.

خدا وکیلی قرار دادن connectoionstring تو web.config هم از اون چیزهایی بود که من تو dreamweaver دیده بودم و خیلی دوست داشتم ببینم تو VS. Net به چه صورته که اینجا به صورت تصادفی اون رو هم متوجه شدم. ولی سوال من چیز دیگه ایه!

اصلاً بذار این طوری بگم :

حالا فرض کن من connection رو به همین صورت که میگی ساختم. بعد یه sqlcommand یا sqldataadapter از توی toolbox می کشم میارم روی فرم. (ببین دارم می گم sqlcommand یا sqldataadapter رو drag می کنم نه اینکه براش کد می نویسم.) حالا تو همو حالت design (نه حالت code) می خوام command text شون رو از توی پنجره properties تنظیم کنم ولی تا connection شون set نشه که اجازه این کار رو به من نمیده. از طرفی هم من چون connection رو توی code ساختم تا برنامه اجرا نشه به connectionstring هم دسترسی ندارم.

مشکل من اینه وایلا اگر قرار باشه این قسمتها رو هم از طریق کد نویسی پیاده کنم connectionstring رو هم می شه توی یه module جدا یا توی یکی از فرم ها به صورت یه public string تعریف کرد. همه جا هم ازش استفاده کرد. توی web.config هم می شه گذاشت.

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

مرسی.
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
شما اينطوري ميخواي
دوتا راه هست كه هردو به خونه ميره بهت ميگيم از يكي از اين دوتا راه برو به انتخاب خودت
حالا تو ميگي نه من ميخوام از هردوتا راه باهم برم:D
تنها راهش اينه كه از وسط بري:D
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
در دیزاین مد امکان استفاده از متغییر نیست، بنا براین اصلا این کار شدنی نیست!
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
خوب من هم همینو می گم دیگه، اون دو تا راه رو که شما می گی کمابیش می دونستم می خواستم ببینم از وسط هم راهی هست یا نه که خوب مشخص شد نیست.

ولی اگه می شد چی می شد!!!

به هر حال از همگی ممنون.
 
بالا