احتاج كود للبحث في قاعدة البيانات من نوع SQL كالتالي :
لدي قاعدة بيانات فيها :
ItemCode
ItemName
ItemPrice
ولدي داتا جريد
كود الصنف - اسم الصنف - سعر الصنف
المطلوب البحث عن رقم الصنف من داخل التكست بوكس وانزال نتيجة البحث في الداتا جريد
لبرنامج فاتورة مبيعات
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar <> ChrW(Keys.Enter) Then Return
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code", con) dp.SelectCommand.Parameters.AddWithValue("@code", TextBox1.Text) Dim dt_itm As New DataTable If dp.Fill(dt_itm) > 0 Then Dim r As DataRow = dt_itm.Rows(0) dgv_data.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"))
21-11-17, 06:28 AM (آخر تعديل لهذه المشاركة : 21-11-17, 06:29 AM {2} بواسطة VB.NET.)
جزاك الله خير اخي الكريم a.Ahmed
الى الان يا اخوان الكود تمام والمطلوب ولاكن انا اضفت قيمة وهي واحد لكل مره تنضاف الى الداتا جريد
الي احتاجه الان اذا اضفت صنف الى الجريد وكان مضاف من قبل ما اريد بياناته في سطر اخر احتاج زيادة الخلية الخاصة بالعدد الى 1
وكل ما تكرر صنف موجود بالداتا جريد نريد زيادة قيمة العدد ب 1ارفقت الصور لتوضيح ذلك
الصور التوضيحية
يعني اذا كان نفس الرقم موجود في الداتا جريد ما احتاج تكرار السطر وانما زيادة العدد فقط الى 2 او 3 او 4
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar <> ChrW(Keys.Enter) Then Return
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code", con) dp.SelectCommand.Parameters.AddWithValue("@code", TextBox1.Text) Dim dt_itm As New DataTable If dp.Fill(dt_itm) > 0 Then Dim r As DataRow = dt_itm.Rows(0)
dgv_data.ClearSelection()
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value = r("ItemCode")).SingleOrDefault If IsNothing(dgvRow) Then
21-11-17, 07:24 AM (آخر تعديل لهذه المشاركة : 21-11-17, 07:26 AM {2} بواسطة VB.NET.)
وفقك الله في الدنيا والاخرة
هل ممكن اخي الكريم ان اطلب بزيادة رقم 1 للكمية بمجرد الضغط على + داخل التكست او نقصان 1 للكمية اذا كانة اكثر من 1 واذا كانت الكمية 1 وعملت - يتم حذف السطر
طبعا هذا التعامل لاخر سطر في الداتا جريد
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load dgv_data.AllowUserToAddRows = False
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress Select Case e.KeyChar
Case ChrW(Keys.Enter)
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code", con) dp.SelectCommand.Parameters.AddWithValue("@code", TextBox1.Text) Dim dt_itm As New DataTable If dp.Fill(dt_itm) > 0 Then Dim r As DataRow = dt_itm.Rows(0)
dgv_data.ClearSelection()
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value = r("ItemCode")).SingleOrDefault If IsNothing(dgvRow) Then
Case "+" Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault If Not IsNothing(dgvRow) Then dgvRow.Cells(3).Value += 1 End If e.Handled = True
Case "-" Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault If Not IsNothing(dgvRow) Then dgvRow.Cells(3).Value -= 1 If dgvRow.Cells(3).Value = 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index) End If e.Handled = True
21-11-17, 08:09 AM (آخر تعديل لهذه المشاركة : 21-11-17, 08:17 AM {2} بواسطة a.ahmed.)
PHP كود :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load dgv_data.AllowUserToAddRows = False
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress Select Case e.KeyChar
Case ChrW(Keys.Enter)
Dim code = sender.Text.Trim Dim qty As Integer = 1
Dim spP() As String = sender.Text.Trim.Split("+") If spP.Count = 2 Then code = spP(0) qty = spP(1) End If
Dim spM() As String = sender.Text.Trim.Split("-") If spM.Count = 2 Then code = spM(0) qty = -spM(1) End If
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code", con) dp.SelectCommand.Parameters.AddWithValue("@code", code) Dim dt_itm As New DataTable If dp.Fill(dt_itm) > 0 Then Dim r As DataRow = dt_itm.Rows(0)
dgv_data.ClearSelection()
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value = r("ItemCode")).SingleOrDefault If IsNothing(dgvRow) Then If qty > 0 Then dgv_data.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"), qty)
dgv_data.FirstDisplayedScrollingRowIndex = dgv_data.Rows.Count - 1 dgv_data.Rows(dgv_data.Rows.Count - 1).Selected = True End If
If dgvRow.Cells(3).Value <= 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
End If
sender.Clear() sender.Select()
End If End Using
Case "+" If sender.Text.Trim = "" Then Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault If Not IsNothing(dgvRow) Then dgvRow.Cells(3).Value += 1 End If e.Handled = True End If
Case "-" If sender.Text.Trim = "" Then Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault If Not IsNothing(dgvRow) Then dgvRow.Cells(3).Value -= 1 If dgvRow.Cells(3).Value = 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index) End If e.Handled = True End If