تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كود اظهار البيانات عندما اختار اسم من الكومبوبكس
#1
السلام عليكم

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

واريد من اختار اسم من الكومبو بكس يظهر لي رقم الشخصي للطالب

بحط ليكم الكودين للتعلم السريع

كود اظهار البيانات عندما اختار اسم من الكومبوبكس

كود :
Try
          dbConnect()
          cmd.CommandText = "Select * from Student where Student_Name = '" & ComboBox7.Text & "'"
          dr.Close()
          dr = cmd.ExecuteReader

          While dr.Read()
              TextBox11.Text = dr("Student_CPR").ToString
          End While
      Catch ex As Exception
          MessageBox.Show(ex.Message, "خطأ في القراءة", MessageBoxButtons.OK, MessageBoxIcon.Error)
      End Try

الكود الثاني عبارة ان يقرأ التابل من القاعدة البيانات ويظهرها لي في الكومبوبكس

كود :
Try
          Dim cmd As New OleDbCommand
          cmd.Connection = dbConnect()
          cmd.CommandText = "SELECT ST_ID,ST_Name FROM New_Student"
          Dim dr As OleDbDataReader
          dr = cmd.ExecuteReader

          While dr.Read()
              ComboBox1.Items.Add(dr("ST_ID"))
              ComboBox2.Items.Add(dr("ST_Name"))
          End While
          dr.Close()

          ComboBox1.Items.Add(ComboBox1.Text)
          ComboBox2.Items.Add(ComboBox2.Text)
      Catch ex As Exception
          MessageBox.Show(ex.Message, "خطأ في القراءة", MessageBoxButtons.OK, MessageBoxIcon.Error)
      End Try


لو تساعدوني في حل مشكلة اختيار الاسم ويظهر لي باقي البيانات التي اريدها في تكس بوكس

ويفظل مع تحديث مستمر يعني كلما اضيف يقرا الاسم الجديد مايحتاج اطلع من البرنامج وارد اشغله

واذا عندكم افضل واقوى من هذا الكود للفهم اسرع اعطوني اياه مع الشرح لو سمحتون
الرد }}}
تم الشكر بواسطة: Abdalazim19
#2

السلام عليكم ورحمة الله

هذا مثال جاهز من هذا المنتدى احتفظت به لسهولته فيه دوال حلوة لتعبئة ComboBox وأخرى لقراءة سجل بناء على استعلام،
لاحظ انه استخدم الحدث الأفضل SelectionChangeCommitted وليس SelectedIndexChanged
جربه بدل الموجود عندك وإن شاء الله تجد فيه الفائدة
PHP كود :
Imports System.Data.OleDb

Public Class Form1


    
' نص الاتصال بقاعدة البيانات '
    
Public connString As String "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\Database1.accdb;"


    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        
Try

            
' ComboBox استدعاء تعبئة صندوق السرد '
            
ComboBox_Fill(Me.ComboBox1connString"table1""name""id")

        Catch 
ex As Exception
            MsgBox
(ex.Message)
        
End Try
    
End Sub


    
' SelectionChangeCommitted الاختيار من صندوق السرد باستخدام الحدث '
    
Private Sub ComboBox1_SelectionChangeCommitted(ByVal sender As ObjectByVal e As System.EventArgsHandles ComboBox1.SelectionChangeCommitted

        
' إذا كان نص الاتصال بقاعدة البيانات موجود على شكل نص '
        
Dim row As DataRow GetDataRow(connString" SELECT * FROM [table1] WHERE [id]=" ComboBox1.SelectedValue)

        If 
row IsNot Nothing Then
            Me
.TextBox1.Text row("address"' العنوان '
            
Me.DateTimePicker1.Value row("birthdate"' تاريخ الميلاد '
            
Me.CheckBox1.Checked row("married"' متزوج '
        
End If

    
End Sub


    
''' <summary>GetDataRow جلب بيانات سجل واحد</summary>'
    ''' <param name="connctionString">نص الاتصال بقاعدة البيانات</param>'
    ''' <param name="sqlString">جملة الاستعلام</param>'
    ''' <returns>DataRow تعيد سطر بيانات</returns>'
    
Public Function GetDataRow(ByVal connctionString As String_
                               ByVal sqlString 
As String) As DataRow
        Using da 
As New OleDbDataAdapter(sqlStringconnctionString)
            
Using dt As New DataTable
                
If da.Fill(dt) > 0 Then Return dt.Rows(0)
            
End Using
        End Using
    End 
Function


    
''' <summary>ComboBox_Fill تعبئة صندوق السرد</summary>'
    ''' <param name="comboBox">المستهدف ComboBox تحديد مربع السرد </param>'
    ''' <param name="connctionString">نص الاتصال بقاعدة البيانات</param>'
    ''' <param name="tableName">إسم الجدول</param>'
    ''' <param name="displayMember">حقل العرض</param>'
    ''' <param name="valueMember">حقل القيمة</param>'
    
Public Sub ComboBox_Fill(ByVal comboBox As ComboBox_
                             ByVal connctionString 
As StringByVal tableName As String_
                             ByVal displayMember 
As StringByVal valueMember As String)
        
Dim sqlString As String _
                
" SELECT [" displayMember "], [" valueMember "] " _
                
" FROM [" tableName "]"
        
Using da As New OleDbDataAdapter(sqlStringconnctionString)
            
Dim dt As New DataTable
            da
.Fill(dt)
            
comboBox.DataSource dt
            comboBox
.DisplayMember displayMember.Trim
            comboBox
.ValueMember valueMember.Trim
            comboBox
.SelectedIndex = -1
        End Using
    End Sub


End 
Class 




نسيت موضوع "ويفظل مع تحديث مستمر يعني كلما اضيف يقرا الاسم الجديد مايحتاج اطلع من البرنامج وارد اشغله"
فقط استدعي الدالة ComboBox_Fill بنفس الطريقة بعد الاضافة

الرد }}}
تم الشكر بواسطة:
#3
الاستاذ الفاضل ممكن رفع الكود في فورم او المثال كامل شكرا
الرد }}}
تم الشكر بواسطة:
#4
مشكور اخوي على المساعدة
الرد }}}
تم الشكر بواسطة:
#5

السلام عليكم ورحمة الله

ما فهمت ردكـ، يعني استفدت من ردي ولا طلع ردي مثل عدمه .

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

ولو ممكن تحط لنا مثال بسيط عن الكومبو بكس و القاعدة البيانات اكسس الاستدعاء و التحديث وقراءة البيانات في الكومبو بكس
الرد }}}
تم الشكر بواسطة:
#7
بعد اذنكم

مرة اخري برجاء رفع الفورم
الرد }}}
تم الشكر بواسطة:
#8

السلام عليكم ورحمة الله

أخوي عاطف وأخوي الشبح (حسب ترجمة 0theghost0) أنا وضعت كود الفورم كامل،

كل ما عليك هو إنشاء جدول باسم table1 وفيها الحقول التالية:
id ترقيم تلقائي
name نص
address نص
birthdate تاريخ
married نعم/لا
ثم ضع فيها بعض البيانات وجرب الكود

معظم الأكواد التي من عندي هي أصلا ملفات txt وليست مشاريع،
أحتفظت بهذا الكود لأهميته لأنه يحتوي طريقة التعامل مع أنواع مختلفة من الحقول كما تلاحظون مثل
ComboBox
TextBox
DateTimePicker
CheckBox

الرد }}}
تم الشكر بواسطة:
#9
شكرا علي اهتمامك
الرد }}}
تم الشكر بواسطة:
#10
اخ وليد الكود لم يظبط عندي صح هل ارفع لك المشروع وتعدل عليه ؟؟

بس صراحة ابغي ارسله لك على الايميل لو سمحت حق اتراسل معاك على الايميل

اذا ممكن
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] حل مشكلة الاتصال بقواعد البيانات access loay775 2 158 25-02-24, 06:29 AM
آخر رد: loay775
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 249 11-02-24, 08:43 PM
آخر رد: assuhimi
  [VB.NET] منع تكرار البيانات في عند الادخال مبرمج صغير 1 2 255 24-01-24, 05:18 PM
آخر رد: مبرمج صغير 1
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 273 18-01-24, 05:04 PM
آخر رد: loay775
  [VB.NET] إعادة استدعاء البيانات من قاعدة بيانات اكسس والاهم الصورة مبرمج صغير 1 1 273 13-01-24, 01:17 PM
آخر رد: مبرمج صغير 1
  [سؤال] كود اظهار رساله في حال وجود الرقم في اكثر من عمود مبرمج صغير 1 6 402 09-01-24, 01:41 AM
آخر رد: Taha Okla
  [كود] اريد كود إرسال البيانات من الفيجوال بيسك إلىPDF issamsaidd 10 5,829 25-12-23, 06:30 PM
آخر رد: الحزين اليماني
  جملة الاتصال بقاعدة البيانات اكسس محمد خيري 4 362 12-12-23, 03:14 AM
آخر رد: محمد خيري
  كود الاتصال بقاعدة البيانات sqlserver strongriseman 2 421 29-11-23, 09:25 PM
آخر رد: العتيق
Heart [VB.NET] كيفية جعل الدتاجريديد فيو تظهر عندما تكون قاعدة البيانات فارغه الحزين اليماني 1 371 22-11-23, 05:31 PM
آخر رد: justforit

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم