منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة في عملية البحث في قواعد البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
ألسلام عليكم ورحمه الله وبركاته

عندي مشكلة في عملية البحث في قواعد البيانات فدائما يعطيني خطا في ان قواعد البيانات مغلقة في هذا الكود


Dim dr As SqlDataReader = cmd.ExecuteReader


وهذا الكود كامل ولاادري اين الخطا اتمنى مساعدتي



كود :
Private Sub btnQueri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQueri.Click

 
       ' فتح واغلاق الاتصال بقاعدة البيانات
       If sqlcon.State = ConnectionState.Open Then
           sqlcon.Close()

       End If
       sqlStatment = ""
       SQL1 = ""
       Dim firtCont As Boolean = True
       If txtQuery.Text <> "" Then
           If firtCont = False Then
               sqlStatment = sqlStatment & "Emp.IDNumEmp like '%" & txtQuery.Text & "'%"
           Else
               firtCont = False

               sqlStatment = sqlStatment & "Emp.IDNumEmp like '%" & txtQuery.Text & "'%"

           End If
       End If

       Class1.sqlcon.Open()

       SQL1 = "Select * From Emp Where " & sqlStatment
       Dim cmd As New SqlCommand(SQL1)
       cmd.Connection = sqlcon

       Dim dr As SqlDataReader = cmd.ExecuteReader

       If dr.HasRows Then
           dr.Read()

           txtid.Text = dr.Item("IDNumEmp")
           txtname.Text = dr.Item("name")
       

           Class1.sqlcon.Close()



       Else
           labelerror.BackColor = Color.Red
           labelerror.ForeColor = Color.White
           labelerror.Text = "الجسل غير موجود "

       End If


   End Sub
class 1
هو كلاس فيه الاتصال بقواعد البيانات وداخله تعريف sqlcon

في حالة حدف class1
لايتم التعرف على sqlcon
فلا ادري اي المشكلة هل بالاتصال بالكلاس ام في sqlcon
كود :
Imports System.Data.SqlClient
Imports System.Globalization
Public Class Class1
   Public Shared sqlcon As New SqlConnection

'دالة جلب البيانات من قاعدة البيانات
   Public Function SQLReturn(ByVal SQLStatment As String) As DataSet
       Dim ds As New DataSet
       Try
           If sqlcon.State = ConnectionState.Open Then
               sqlcon.Close()

           End If
           Dim sda As New SqlDataAdapter(SQLStatment, sqlcon)
           sda.Fill(ds)

       Catch ex As Exception
           MsgBox(ex.Message)
       Finally
           sqlcon.Close()

       End Try
       Return ds
   End Function
أنصحك طالما لا تعرف كيف تستفيد من Class1 أن تستغني عنه وعرف بنفسك نص الاتصال في Module وليكن فقط هذا السطر
كود :
Public sqlcon As New SqlConnection("هنا يتم وضع نص الاتصال بقاعدة البيانات")
اشكرك جدا تم حل المشكلة باستخدام الموديل