سلام
میگم یه کلاس با این کد به پروژتون اضافه کنید
Imports System.Data.SqlClient
PublicClass DataBase
PrivateShared mvarConnectionString AsString
PrivateShared mvarCnt As SqlConnection
PrivateShared mvarCmd As SqlCommand
PrivateShared mvarDa As SqlDataAdapter
PublicSharedProperty ConnectionString() AsString
Get
Return mvarConnectionString
EndGet
Set(ByVal value AsString)
mvarConnectionString = value
EndSet
EndProperty
PublicSharedReadOnlyProperty Cnt() As SqlConnection
Get
If IsNothing(mvarCnt) Then
mvarCnt = New SqlConnection
EndIf
If mvarCnt.State <> ConnectionState.Open Then
With mvarCnt
.ConnectionString = mvarConnectionString
.Open()
EndWith
EndIf
Return mvarCnt
EndGet
EndProperty
PublicSharedReadOnlyProperty Cmd() As SqlCommand
Get
If IsNothing(mvarCmd) Then
mvarCmd = New SqlCommand
EndIf
mvarCmd.Connection = Cnt
Return mvarCmd
EndGet
EndProperty
PublicSharedReadOnlyProperty Da() As SqlDataAdapter
Get
If IsNothing(mvarDa) Then
mvarDa = New SqlDataAdapter
EndIf
mvarDa.SelectCommand = Cmd
Return mvarDa
EndGet
EndProperty
EndClass
حالا که چی ؟
شاید اول باید میگفتم که هدف از این کار چیه ، خوب فرض کنید شما میخواید یه سری اطلاعات رو از بانکتون که SQL Server هست بخونید
یه راهش اینه از سیستمهای Rad خود مایکروسافت استفاده کنید یعنی ویزاردی DataSetو TableAdapterرو BindingSourecاو ادامه مراحل رو انجام بدید تا آخر
یه راهشم اینه که نونه بازویه خودتونو بخورید یعنی با استفاده از کد اول یه Connection تعریف کنید بعد یه Command و بعدشم یه DataAdapter وپس از ست کردن پارامتراشون Datatable مورد نظر رو پر کنید اینجوری
Private Cnt AsNew SqlClient.SqlConnection
Private Cmd AsNew SqlClient.SqlCommand
Private Da AsNew SqlClient.SqlDataAdapter
Private Dt AsNew DataTable
PrivateSub FillData()
With Cnt
.ConnectionString = " ...... "
.Open()
EndWith
With Cmd
.Connection = Cnt
.CommandText = ".......(Quary Morede Nazar)......"
EndWith
With Da
.SelectCommand = Cmd
.Fill(Dt)
EndWith
EndSub
نمیخوام روده دارازی کنم چون میدونم همتون بهتر از من این داستانارو بلدین
حسن این کلاس اینه که اول برنامه ConnectionString رو ست میکنین از اون به بعد شما هرجای برنامتون که احتیاج به ارتباط با DataBaseاتون داشته باشین فقط کافیه Quaryتون رو تو Cmd.CommandText بریزید و ازش استفاده کنید
دیگه نمیخواد هی Connection رو هی چک کنید که Open هست یا نه یا کارایه تکراری رو انجام بدین
چند تا مثال میزنم که بهتر منظورم رو برسونم
مثلاً یه Insert یا Update
With Cmd
.CommandText = ".......(Quary Morede Nazar)......"
.CommandType = CommandType.Text
.ExecuteNonQuery()
EndWith
یا پر کردن یه DataTable
Cmd.CommandText = ".......(Quary Morede Nazar)......"
Da.Fill(Dt)
راستی حسناش زیاده نمیشه همشو نوشت اگه استفاده کردین ضرر نمیکنین
از اینکه وقت گزارشتین ممنونم