تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مساعده في اظهار قيمة عند الاختيار من combobox
#7
(28-03-17, 07:56 PM)billyalhaj.2011 كتب :
اخي حريف  هذا مثال توضيحي بسيط ..


مرحبا أخي العزيز

احنا هنا أخوه نستفيد من بعض

العضو اللي يريد مساعدة لا بد يساعد الاعضاء في ارفاق مثال بسيط مع قاعدة البيانات وشرح المطلوب ليجد الحل بسرعه .

والأخ مساعدة معروف بمساعدة الاعضاء وانا من الشاهدين .

على العموم حصل خير .

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

ضع هذا الكود في اي مكان في الفورم وقم باختيار اي منتج من الكومبوبوكس الموجود في القريد والنقر على زر انتر

كود :
Private Sub dgv1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles dgv1.CellEndEdit
       Try

           cmd = New SqlCommand("SELECT unit FROM table_1 where  Product = @pr", con)
           cmd.Parameters.Add("@pr", SqlDbType.NVarChar).Value = dgv1.Rows(e.RowIndex).Cells(0).Value
           con.Open()

           Dim dr As SqlDataReader = cmd.ExecuteReader

           If dr.Read = True Then

               dgv1.Rows(e.RowIndex).Cells(1).Value = dr!unit

               Me.TextBox1.Text = dr.Item(0)

           Else
               Exit Sub
           End If

           dr.Close()

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

ولكن لو تريد طريقة أكثر أحترافية :

احذف الكومبو من القريد

وادخل حقل الآيدي في القريد

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

لأن كومبو القريد غير سلس في التعامل

اعمل الفورم بالشكل هذا :

   

الخطوة الثانية امسح كامل الكود الموجود في الفورم والصق هذا :

كود :
Imports System.Data.SqlClient
Imports System.Data.SqlClient.SqlCommand
Imports System.Data.SqlClient.SqlDataReader

Public Class Form1
   Dim con As New SqlConnection("server=(Local); database= testdgv; integrated security=true")
   Dim da As SqlDataAdapter
   Dim dt As New DataTable
   Dim cmd As New SqlCommand
   Dim cmdb As New SqlCommandBuilder
   Dim d As Date = Date.Today
   Dim dst As New DataSet
   Dim dv As New DataView

   Private Sub Dgv1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles dgv1.CellEndEdit
       cmd = New SqlCommand("SELECT Product,unit FROM table_1 where  id = @id", con)
       cmd.Parameters.Add("@id", SqlDbType.NVarChar).Value = dgv1.Rows(e.RowIndex).Cells(0).Value

       If con.State = ConnectionState.Closed Then con.Open()

       Dim dr As SqlDataReader = cmd.ExecuteReader

       If dr.Read = True Then

           dgv1.Rows(e.RowIndex).Cells(1).Value = dr!Product 'dr!field name Is ok, correct
           dgv1.Rows(e.RowIndex).Cells(2).Value = dr!unit

           dgv1.AllowUserToAddRows = True
           dgv1.CurrentCell = dgv1.Rows(e.RowIndex + 1).Cells(0) 'وضع المؤشر في الخلية الآولى في سطر جديد + 1

           'Me.TextBox1.Text = dr.Item(1) ' item(0) Product \\ item(1) unit \\ "SELECT Product,unit FROM table_1 where  id = @id"

       Else

           dgv1.AllowUserToAddRows = False
           dgv1.CurrentCell = dgv1.Rows(e.RowIndex).Cells(0) 'وضع المؤشر في الخلية نفسها لعدم وجود المنتج

           MsgBox("Product Not Found")
           dgv1.Rows(e.RowIndex).Cells(0).Value = "" 'تفريغ الخلية

       End If

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


End Class

اي شي غير واضح تفضل بالسؤال .
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: مساعده في اظهار قيمة عند الاختيار من combobox - بواسطة حريف برمجة - 29-03-17, 12:27 AM


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


يقوم بقرائة الموضوع: