تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تخزين رقم الحقل المحدد من الكومبوبكس
#1
Question 
السلام عليكم 
جدول البنك و المستخدمين 



اريده ان يخزن فى جدول bank رقم المستخدم  user_id و يظهر فى datagridview1 الموجوده فى فورم bank اسم المستخدم  user_name الموجود فى جدول user7

كتبت فى module 


يوجد فورم بها كومبوبكس لاضافه مستخدم كما بالشكل 


بعد الاضافه لايظهر اسم المستخدم 
و هذا هو اجراء الحفظ 

اريده ان يخزن فى جدول bank رقم المستخدم  user_id و يظهر فى datagridview1 الموجوده فى فورم bank اسم المستخدم  user_name الموجود فى جدول user7
ما الحل ؟
الرد
تم الشكر بواسطة:
#2
احد الحلول السريعة ان تقوم بتعبئه ال gv باسم المستخدم  وال ID 


 ووضع علامه (ـ) بينهم : user1-500
وتقوم بجلب كل القيمة التي تلي  (-)

كود :
Sub fill_comb()
       CSNF.Items.Clear()
       Dim query As String
       Dim command As OleDbCommand
       Dim reader As OleDbDataReader

       'فحص الاتصال بقاعدة البيانات
       If Conn.State = ConnectionState.Closed Then
           Conn.Open()
       End If
       query = "SELECT user_name,user_id from table"
       command = New OleDbCommand(query, Conn)
       reader = command.ExecuteReader()
       If reader.HasRows Then
           While reader.Read()
               CSNF.Items.Add(reader(0) & "-" & reader(1))
           End While
       End If
       reader.Close()
       Conn.Close()

   End Sub


او اذا كان ال user_name غير مكرر
استدعي الرقم الخاص به عند تغير الاختيار في combo عن طرق function 

كود :
Public Function user_id(ByVal username As String) As Integer

       Dim output As Integer

       Try
           If ConnectionState.Open Then
               Conn.Close()
           End If

           Conn.Open()
           Dim cmd As OleDbCommand = Conn.CreateCommand
           cmd.CommandText = "Select user_id from your_table where user_name=@user_name"
           cmd.Prepare()
           cmd.Parameters.AddWithValue("@user_name", username)

           Dim dr As OleDbDataReader
           dr = cmd.ExecuteReader
           While dr.Read()
               output = dr.GetValue(0)
           End While
           dr.Close()

       Catch ex As OleDbException
           ' Do some logging or something.
           MessageBox.Show("There was an error accessing your data. DETAIL: " & ex.Message)
       End Try

       Return output

   End Function

كود :
   Private Sub ComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox.SelectedIndexChanged
       user_id(ComboBox.SelectedItem)
   End Sub
الرد
تم الشكر بواسطة:
#3
مرفق المشروع و ارجو تعديله

إقتباس :احد الحلول السريعة ان تقوم بتعبئه ال gv باسم المستخدم  وال ID 


 ووضع علامه (ـ) بينهم : user1-500
وتقوم بجلب كل القيمة التي تلي  (-)

كود :

كود :
Sub fill_comb()
       CSNF.Items.Clear()
       Dim query As String
       Dim command As OleDbCommand
       Dim reader As OleDbDataReader

       'فحص الاتصال بقاعدة البيانات
       If Conn.State = ConnectionState.Closed Then
           Conn.Open()
       End If
       query = "SELECT user_name,user_id from table"
       command = New OleDbCommand(query, Conn)
       reader = command.ExecuteReader()
       If reader.HasRows Then
           While reader.Read()
               CSNF.Items.Add(reader(0) & "-" & reader(1))
           End While
       End If
       reader.Close()
       Conn.Close()

   End Sub
الحقل bank_user_id نوعه int هل تصلح هذه الطريقه ؟


الملفات المرفقة
.rar   bank.rar (الحجم : 4.31 م ب / التحميلات : 2)
.rar   daccount.rar (الحجم : 13.73 ك ب / التحميلات : 3)
الرد
تم الشكر بواسطة:
#4
صديقي مشروعك sql و انت مرفق قاعدة بيانات access 
وليس لدي الوقت لتحويله.


الطريقه سهلة جدا 

استخدم ال function هذا 
كود :
Public Function user_id(ByVal username As String) As Integer

      Dim output As Integer

      Try
          If ConnectionState.Open Then
              Conn.Close()
          End If

          Conn.Open()
          Dim cmd As OleDbCommand = Conn.CreateCommand
          cmd.CommandText = "Select user_id from your_table where user_name=@user_name"
          cmd.Prepare()
          cmd.Parameters.AddWithValue("@user_name", username)

          Dim dr As OleDbDataReader
          dr = cmd.ExecuteReader
          While dr.Read()
              output = dr.GetValue(0)
          End While
          dr.Close()

      Catch ex As OleDbException
          ' Do some logging or something.
          MessageBox.Show("There was an error accessing your data. DETAIL: " & ex.Message)
      End Try

      Return output

  End Function

وعدل اسماء الاعمدة اللازمه واسم الجدول.
عند ادخال البيانات اللازمه للجدول فقط ضع  user_id(ComboBox.SelectedItem) 
user_id(ComboBox.SelectedItem) -- هي رقم ال user_id 
الرد
تم الشكر بواسطة:
#5
هل ممكن بعد اذنك تحول الكود السابق الى اتصال منفصل اى بال dataadapter لانى غير متذكر لاكواد الاتصال المتصل
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ظهور قيمة الحقل بالتاكست بكس العيدروس 4 121 07-11-18, 12:29 PM
آخر رد: العيدروس
  [VB.NET] طريقة عرض قيمة المحدد من ComboBox فراس الغزي 6 164 03-11-18, 12:08 AM
آخر رد: فراس الغزي
  لا يريد تعبئه الكومبوبكس vb2010 7 162 20-10-18, 01:49 AM
آخر رد: vb2010
  تخزين محتويات الداتا جريد فيو في قاعدة البيانات mohmmadameenn 2 115 02-10-18, 01:52 PM
آخر رد: جاسم عبد
  [سؤال] تغيير السكاين من الكومبوبكس العيدروس 14 465 14-09-18, 11:46 PM
آخر رد: العيدروس
  [VB.NET] ملأ الكومبوبكس اثناء الكتابة عليه و items تأخذ من البحث larbihamri 21 644 03-09-18, 06:14 AM
آخر رد: elgokr
  [VB.NET] ملأ الكومبوبكس من نتائج البحث في قاعدة البيانات larbihamri 3 205 06-07-18, 06:07 PM
آخر رد: elgokr
  تغيير خصائص الحقل بالكود atefkhalf2004 9 313 09-06-18, 06:12 AM
آخر رد: elgokr
Bug [سؤال] اريد تخزين عدة شيتات -sheet- بعد التعديل من sheet1 ferouk 4 193 29-05-18, 04:37 PM
آخر رد: elgokr
  [VB.NET] جعل الحقل الثالث في اداة dgv تكون combobox tarek 5 332 05-04-18, 01:10 AM
آخر رد: ahmedmansour

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


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