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

نسخة كاملة : تحميل البيانات في combobox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ............

يوجد لديا مشكلة عندما اقوم بتشغيل البرنامج فهو يقوم بتحميل البيانات الى الكومبو بوكس بشكل طبيعي و لكن عند الخطأ في 

الاسم او الرقم يتوقف في تحميل البيانات مرة ثانية ارجو الافادة و شكرا .........



[attachment=5957]
اكتب كود التحميل و اسماء الحقول المراد تحميلها من الجدول واسم الجدول
اخي كود التحميل هو
PHP كود :
Private Sub login_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
       User_Table_Load
()
 
      ComboBox1.Items.Clear()
 
      ComboBox1.DataSource User_Table
       ComboBox1
.DisplayMember "User_Name"
 
  End Sub 


و قاعدة البيانات هي اكسس ......... و شكرا
مشاركة مني لكم فهذا كلاس لفورم باداة كومبوبوكس باسم username يتعبا من عمود باسم un  ومربع نص باسم password مربوط بعمود باسم ps
التصريحات العامة:
كود :
Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"
   Dim con As New OleDb.OleDbConnection(str)
   Dim sql As String = String.Empty
   Dim ds As DataSet
   Dim da As OleDb.OleDbDataAdapter

اجراء تعبئة الكومبوبكس باسماء المستخدمين:
كود :
 Private Sub gusers()
       sql = "select un from tb"
       ds = New DataSet
       da = New OleDb.OleDbDataAdapter(sql, con)
       usernam.Items.Clear()
       ds.Clear()
       da.Fill(ds, "tb")
       usernam.DataSource = ds.Tables("tb")
       usernam.DisplayMember = "un"
   End Sub

ضمن حدث تحميل الفورم
كود :
 gusers()
       If con.State = ConnectionState.Open Then
           con.Close()
       End If






دالة التحقق من البيانات
كود :
Private Function isfound(ByVal un As String, ByVal ps As String) As Boolean
       Dim cm As New OleDb.OleDbCommand("", con)
       cm.CommandText = "select count(tid) from tb where un='" & un & "' and ps='" & ps & "'"
       If con.State = ConnectionState.Closed Then
           con.Open()
       End If
       If cm.ExecuteScalar > 0 Then
           Return True
           If con.State = ConnectionState.Open Then
               con.Close()
           End If
       Else
           Return False
           If con.State = ConnectionState.Open Then
               con.Close()
           End If

       End If
       If con.State = ConnectionState.Open Then
           con.Close()
       End If

   End Function
وضمن زر امر الدخول
كود :
If isfound(usernam.Text, password.Text) = False Then
           MsgBox("Not Found", MsgBoxStyle.Critical, "ERROR")
       Else
           MsgBox("Welcom .. here", MsgBoxStyle.Information, "welcom")
       End If
       If con.State = ConnectionState.Open Then
           con.Close()
       End If



والتالي كامل الكلاس

كود :
Public Class Form1
   Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"
   Dim con As New OleDb.OleDbConnection(str)
   Dim sql As String = String.Empty
   Dim ds As DataSet
   Dim da As OleDb.OleDbDataAdapter

   Private Sub gusers()
       sql = "select un from tb"
       ds = New DataSet
       da = New OleDb.OleDbDataAdapter(sql, con)
       usernam.Items.Clear()
       ds.Clear()
       da.Fill(ds, "tb")
       usernam.DataSource = ds.Tables("tb")
       usernam.DisplayMember = "un"
   End Sub

   Private Function isfound(ByVal un As String, ByVal ps As String) As Boolean
       Dim cm As New OleDb.OleDbCommand("", con)
       cm.CommandText = "select count(tid) from tb where un='" & un & "' and ps='" & ps & "'"
       If con.State = ConnectionState.Closed Then
           con.Open()
       End If
       If cm.ExecuteScalar > 0 Then
           Return True
           If con.State = ConnectionState.Open Then
               con.Close()
           End If
       Else
           Return False
           If con.State = ConnectionState.Open Then
               con.Close()
           End If

       End If
       If con.State = ConnectionState.Open Then
           con.Close()
       End If

   End Function




   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       gusers()
       If con.State = ConnectionState.Open Then
           con.Close()
       End If

   End Sub

   Private Sub btn_login_Click(sender As Object, e As EventArgs) Handles btn_login.Click
       If isfound(usernam.Text, password.Text) = False Then
           MsgBox("Not Found", MsgBoxStyle.Critical, "ERROR")
       Else
           MsgBox("Welcom .. here", MsgBoxStyle.Information, "welcom")
       End If
       If con.State = ConnectionState.Open Then
           con.Close()
       End If

   End Sub
End Class

طبعا مسالة التحقق من هل الاتصال مفتوح ام لا مهمة حتى نضمن ان الخطا لا يتعلق بحالة الاتصال
السلام عليكم ورحمة الله

ما شاء الله شكل نافذة تسجيل الدخول جميلة، وفكرة ComboBox فيها الأسماء حلوة.
اخي سعود بارك الله فيك و لكن لو بالامكان حل مشكلتي عندي كل شيء شغال يقوم بالتحميل اول مرة و لكن عند وجود في خطأ في الرقم السري لا يحمل البيانات مرة اخرة

و شكرا لتعاونك ...............
هلا اخي الكريم
اكتب كل الاجراءات اللتي تستخدم تحميل البيانات مثل User_Table_Load و غيرها
اخي سعود بارك الله فيك و نفعك بعلمك ............

كود التدقيق هو .....
PHP كود :
User_Table.Clear()
 
       daUsertable = New OleDbDataAdapter("select * from User_Table where  pass ='" TextBox2.Text "'"connAccess2010)
 
       daUsertable.Fill(User_Table)

 
       If User_Table.Rows.Count <> 0 Then
            p_permation 
User_Table.Rows(0).Item("Permation_id")
 
              )
 
           start_form.Show()
 
           Me.Hide()
 
       Else
            MsgBox
("اسم المستخدم او كلمة السر خاطئة")

 
         
        End 
If 

بالاضافة الى كود تحميل البيانات في combobox
الموجود سابقا في المشاركة ....

اما فيما يخص ال User_Table_Load

فهذا هو الكود .......... و انا عامله في موديول  ......

PHP كود :
Public Sub User_Table_Load()
 
       User_Table.Clear()
 
       daUsertable = New OleDbDataAdapter("select *from User_Table"connAccess2010)
 
       daUsertable.Fill(User_Table)

 
   End Sub 

و ياريت تحل المشكلة ضمن استطاعتك و الله يجزاك الخير ..............

و احب اشكر اخي الوليد على الاطراء ..........و برنامج صلاحيات المستخدم على حسابك لو تريد ....
كود :
"select * from User_Table where  pass ='" & TextBox2.Text & "'"
اخي الكريم جملة الاستعلام هذه تحتاج منك اعادة نظر!
لما لا يكون الاستعلام عن اسم المستخدم وكلمة المرور؟
يعني المستخدم يختار الاسم الخاص به ثم يكتب كلمة المرور فيكون الاستعلام عن الاثنين ...

الشي الاخر اذا لم اكن فهمت الكود خطا وهو انني وجدت تعارض بين الكود التالي:
كود :
daUsertable = New OleDbDataAdapter("select * from User_Table where  pass ='" & TextBox2.Text & "'", connAccess2010)

وبين
كود :
 daUsertable = New OleDbDataAdapter("select *from User_Table", connAccess2010)

(ان كان فهمي صحيح) فتاكد من طريقة كتابة الكود
اخي الكريم سعود اولا بارك الله فيك
ثانيا انا لمى استخدم الاستعلام عن الاثنين عن الاسم و الرقم  يظهر لي رسالة الخطأ مباشرة و لا يدخل الى البرنامج و هذا هو الكود .........


PHP كود :
daUsertable = New OleDbDataAdapter("select * from User_Table where user_name like'" ComboBox1.Text "' and pass ='" TextBox2.Text "'"connAccess2010
 
اما عن التعارض فلا يوجد لدي اي مشكلة بينهم المشكلة هي فقط عدم تحميل البيانات مرة اخرة و لو  اردت استطيع ارسال البرنامج اليك على الايميل ..........
الصفحات : 1 2