الإخوة الكرام:
لدي مشكلة في الداتا ريدر, عملت الاتصال في الكود و كان ماشي اوكي,ثم احتجت أن أعمل dtatgrid
حتى أعرض نتائج البحث فيها , فعرفت data adapterو من بعده dataset المشكلة أنه يطلع لي Errorيقول أن فيه داتاريدر مفتوح أصلا يجب إغلاقة مع أن كل الdatarederمغلقة بعد الإنتهاء منها مباشرة, وكذلك الكود يمشي إذا لم يتم تعريف الdata adapter...
المسج:
there is an already data adapter that is acciociated with this connection which must be closed first
أرجو المساعدة
مكان الخطأ:
MyAdapter.SelectCommand = cmdUniversity 'MyAdapter.Container = Global_Connection Dim ds As New DataSet MyAdapter.Fill(ds) Me.DG_Search.DataSource = ds
الكود:
Private Sub BtnSearch2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSearch2.Click
'all variables are initialized in the radio buttons -checked Change Event
Try
Dim sql_statment As String
If SearchKey = 0 Then
MsgBox("Please choose your Search Key", MsgBoxStyle.OKOnly, "Error")
ElseIf SearchKey = 1 Then
University_ID = CInt(Me.txtUniversityID2.Text)
sql_statment = "select * from University where University_ID=" & University_ID & ";"
ElseIf SearchKey = 2 Then
University_Name = Me.txtUniversityName2.Text
sql_statment = "select * from University where University_Name like '" & University_Name & "';"
ElseIf SearchKey = 3 Then
University_MainLocation = Me.CB_City2.SelectedItem
'Dim cmdCity As New SqlCommand
cmdCity.Connection = Global_Connection
cmdCity.CommandText = "select City_ID from city where City_name='" & University_MainLocation & "';"
Dim drCity As SqlDataReader = cmdCity.ExecuteReader
drCity.Read()
City_ID_Value = drCity("City_ID")
drCity.Close()
sql_statment = "select * from University where Main_Loc=" & City_ID_Value & ";"
ElseIf SearchKey = 4 Then
University_WebAddress = Me.txtWebsite2.Text()
sql_statment = "select * from University where Website_Address like '" & University_WebAddress & "';"
ElseIf SearchKey = 5 Then
University_EMail = Me.txtEmail2.Text
sql_statment = "select * from University where Email like '" & University_EMail & "';"
End If
'Dim cmdUniversity As New SqlCommand
cmdUniversity.Connection = Global_Connection
cmdUniversity.CommandText = sql_statment
cmdUniversity.ExecuteReader()
'Dim MyAdapter As New SqlDataAdapter
MyAdapter.SelectCommand = cmdUniversity
'MyAdapter.Container = Global_Connection
Dim ds As New DataSet
MyAdapter.Fill(ds)
Me.DG_Search.DataSource = ds
MsgBox("Good,drModify", MsgBoxStyle.OKOnly)
Catch ex As Exception
MsgBox(ex.Message)
Catch er As SqlException
MsgBox(er.Number)
MsgBox(er.Message)
End Try
End Subالconnection and sqlcommands are all declared in the form load eventأنتظر الردود :)
