اخوتى الكرام
السلام عليكم ورحمة الله وبركاته
تمنياتى تكونوا جميعا بخير ان شاء الله تعالى
لدى مشكله بسيطه لكن لم اجد حل لها
الكود التالى يحمل اسماء الجنسيات للعملاء بالكمبوبوكس من قاعدة بيانات sql2005 بالكود التالى
فى الحدث loadform1
'==========================================================================|
'الإجراء الخاص بجلب الجنسيات
' ذلك من قواعد بيانات الخادم
'==========================================================================|
'استدعاءالاتصال العام بقواعد بيانات السيرفر
Try
Me.Cursor = Cursors.WaitCursor
'معرفة حالة الاتصال العام فإذا كان غير مفتوح
If GSQLConnection.State <> ConnectionState.Open Then
'عندهااستدعي إجراء الاتصال العام من مديول الاتصال
GeneralConnection()
Me.Cursor = Cursors.Default
End If
If GSQLConnection.State = ConnectionState.Open Then
GDR = Nothing
GSQLCmd.CommandType = CommandType.Text
GSQLCmd.CommandText = "SELECT* FROM nationaltyinfo"
GDR = GSQLCmd.ExecuteReader
Do While GDR.Read()
nationalty.Items.Add(GDR.GetSqlString(1))
Application.DoEvents()
Loop
GDR.Close()
GSQLConnection.Close()
Me.Cursor = Cursors.Default
End If
Catch
Finally
Me.Cursor = Cursors.Default
GSQLConnection.Close()
End Tryوالكود التالى يقوم بعملية البحث باسم العميل
'|--------------------------------------------------------|
'| الكود الخاص بالبحث بكود العميل |
'|--------------------------------------------------------|
'معرفة حالة الاتصال العام فإذا كان غير مفتوح
If GSQLConnection.State <> ConnectionState.Open Then
'عندهااستدعي إجراء الاتصال العام من مديول الاتصال
GeneralConnection()
End If
'GDR.Close()
If code_cost.Text = "" Then
MsgBox("الرجاء ادخال كود العميل المراد البحث عنها ", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.OkOnly, "AutoConnect")
code_cost.Focus()
Else
Try
GSQLCmd.Parameters.Clear()
GSQLCmd.CommandType = CommandType.Text
GSQLCmd.CommandText = "select * from customer_Info where code_cost='" & code_cost.Text & "' and Branch_code= '" & Branch_code.Text & "'" ' بحث بشرطين
GSQLCmd.CommandType = CommandType.Text
Dim rd As SqlClient.SqlDataReader = GSQLCmd.ExecuteReader
If rd.Read = True Then
code_cost.Text = rd.GetValue(0)
name_cost.Text = rd.GetValue(1)
mobil.Text = rd.GetValue(2)
Address.Text = rd.GetValue(3)
Email.Text = rd.GetValue(4)
Else
MsgBox("هذا العميل غير موجود ", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.OkOnly, "AutoConnect")
rd.Close()
Exit Sub
End If
rd.Close()
Catch exp As Exception
MsgBox(exp.Message)
End Try
End Ifالمشكله عندما اقوم باستخدام الكود الثانى كود البحث بكود العميل تظهرى لى الرساله
There is already an open DataReader associated with this Command which must be closed first.
---------------------------
OK
---------------------------
وعندما اقوم بالضغط على ok تظهر نتيجة البحث عادى وعند ايقاف الكود الاول الخاص بجلب الجنسيات من قاعدة البيانات فى الكومبوبوكس من اللود للفورم تنتهى المشكله
ارجو من الاخوه مراجعة الكود الاول وان كان هناك مشكله او كود بديل ارجو طرحه
تمنياتى لكم بدوام التوفيق والتقدم
بانتظار ردودكم
سلام الله عليكم
