PDA

View Full Version : امکان ایجاد کانکشن عمومی



rezaiy.ali
جمعه 26 مرداد 1386, 18:03 عصر
با سلام
من تو پروژه ام 3و4 تا فرم دارم که هر از کدوم می خوام به دیتابیس ارتباط برقرار کنم.
حال راهی است که نیاز نباشه من برای هر فرم یه کانکشن ایجاد کنم یعنی میشه یه کانکشن عمومی برای همه فرم های پروژه ام ایجاد کنم.
لطفا راهنمایی بفرماید.
باتشکر

bad_boy_2007
جمعه 26 مرداد 1386, 20:48 عصر
درستش اینه که یک کانکشن عمومی ایجاد کنی و همیشه از همون استفاده کنی .
میتونی تو فرم اصلی یک کانکشن ایجاد کنی و هر جا نیاز به باز کردن کانکشن یا آبدیت دیتاست داری از اون استفاده کنی مزیت این روش اینه که اگه بخوای بانک رو تغییر بدی مثلا از اکسس به SQL به راحتی قابل انجامه جدا از اینکه احتمال تداخل و اشتباهات مختلف رو هم کاهش میده .

rezaiy.ali
جمعه 26 مرداد 1386, 21:59 عصر
درستش اینه که یک کانکشن عمومی ایجاد کنی و همیشه از همون استفاده کنی .
میتونی تو فرم اصلی یک کانکشن ایجاد کنی و هر جا نیاز به باز کردن کانکشن یا آبدیت دیتاست داری از اون استفاده کنی مزیت این روش اینه که اگه بخوای بانک رو تغییر بدی مثلا از اکسس به SQL به راحتی قابل انجامه جدا از اینکه احتمال تداخل و اشتباهات مختلف رو هم کاهش میده .
با تشکر از شما
لطفا در صورت امکان مورد طلب خود توضیح بیشتر ارائه بفرمایید.
در صورت امکان مثالی ارائه بفرمایید

Keyvan_Y
جمعه 26 مرداد 1386, 23:57 عصر
خوب دوست عزیز
کاری که باید بکنی به صورت زیرهست

فرض می کنیم که نام پروﮊه ات WindowsApplication1 باشه
اول یک کلاس جدید به پروﮊه ات اضافه کن. فرض می کنیم که نام این کلاس clsConnectionباشه. این کلاس باید به صورت زیر نوشته بشه



Imports System.Data.SqlClient

PublicClass clsConnection
PublicSharedFunction GetConnection() 'Creating The Connection Function
Dim sqlconnection1 AsNew SqlConnection("workstation id=ServerName;packet size=4096;integrated security=SSPI;data source=ServerName;persist security info=False;initial catalog=DatabaseName") 'Craeting the Connection String
Return sqlconnection1
EndFunction

EndClass



حالا اگر بخوای از این Connection به عنوان مثال در فرم اصلی برنامه ات (frmMain) استفاده کنی باید به صورت زیر عمل کنی


SqlClient رو در ابتدای فرم Import کن

Imports System.Data.SqlClient




و مثلا در رویداد Form Load می تونی به صورت زیر عمل کنی


PrivateSub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load

Dim sqlconnection1 As SqlConnection = clsConnection.GetConnection
Dim sqlcommand1 AsNew SqlCommand("Select FiledNames from TableName",_sqlconnection1) 'Creating SQL Command

sqlconnection1.open() 'Opening the connection

sqlcommand1.ExecuteReader

sqlconnection1.close() 'Closing the connection
EndSub


دقت کن که این روش, روش بسیار خوبی برای نوشتن برنامه های چند لایه است. اگر یک ذره باهاش کار کنی مطمئنا میتونی این روش رو بسط بدی
باز هم اگر سوالی داشتی بپرس


موفق باشی