تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في تعديل كود
#1
السلام عليكم و رحمة الله و بركاته

أرجو المساعدة في تعديل هذا الكود ، عند اضافة كود مزيج من الاحرف و الارقام يقع خطأ ، صورة توضيحية : https://prnt.sc/pu3p5j

كود :
Imports System.Data.OleDb


Module mdlItem
   Dim cmd As New OleDbCommand
   Public dtItem As New DataTable

   Sub loadItem()
       dtItem.Clear()
       cmd = New OleDbCommand("select * from tblItems ", con)
       con.Open()
       dtItem.Load(cmd.ExecuteReader)
       con.Close()
       cmd = Nothing
   End Sub

   Public Sub InsertItem(ByVal code As String, ByVal name As String, ByVal price As Decimal, ByVal qtyStor As Double,
                         ByVal chira As Decimal)
       cmd = New OleDbCommand("insert into tblItems (code, nam, price, qtystor, chira) values (@code, @nam, @price, @qtystor, @chira)", con)
       cmd.Parameters.Add("@code", OleDbType.VarChar).Value = code
       cmd.Parameters.Add("@nam", OleDbType.VarChar).Value = name
       cmd.Parameters.Add("@price", OleDbType.Currency).Value = price
       cmd.Parameters.Add("@qtystore", OleDbType.Double).Value = qtyStor
       cmd.Parameters.Add("@chira", OleDbType.Currency).Value = chira
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
       cmd = Nothing
   End Sub
   Public Sub UpdateItem(ByVal name As String, ByVal price As Decimal, ByVal qtystor As Double,
                         ByVal code As Integer, ByVal chira As Decimal)
       cmd = New OleDbCommand("Update tblItems set nam=@nam, price=@price, qtyStor=@qtyStor, chira=@chira where code=" & code, con)

       cmd.Parameters.Add("@nam", OleDbType.VarChar).Value = name
       cmd.Parameters.Add("@price", OleDbType.Currency).Value = price
       cmd.Parameters.Add("@qtystore", OleDbType.Double).Value = qtystor
       cmd.Parameters.Add("@chira", OleDbType.Currency).Value = chira
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
       cmd = Nothing
   End Sub

   Public Sub DeleteItem(ByVal code As String)
       cmd = New OleDbCommand("delete from tblItems where code=@code", con)
       cmd.Parameters.Add("@code", OleDbType.VarChar).Value = code
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
       cmd = Nothing
   End Sub
End Module

كود :
Imports System.Data.OleDb
Public Class frmItems
   Dim da As OleDbDataAdapter
   Dim cmdb As OleDbCommandBuilder

   Sub actTXTitem()
       txtCode.Enabled = True
       txtName.Enabled = True
       txtPrice.Enabled = True
       txtQty.Enabled = True
       txtchira.Enabled = True
       txtCode.Focus()
   End Sub
   Sub desActTXTitem()
       txtCode.Enabled = False
       txtName.Enabled = False
       txtPrice.Enabled = False
       txtQty.Enabled = False
       txtchira.Enabled = False
   End Sub
   Sub clearTXTitem()
       txtCode.Clear()
       txtName.Clear()
       txtPrice.Clear()
       txtQty.Clear()
       txtchira.Clear()
   End Sub
   Private Sub frmItems_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       loadItem()
       dgvItem.DataSource = dtItem
       dgvItem.Columns(0).Width = 100
       dgvItem.Columns(1).Width = 150
       dgvItem.Columns(2).Width = 100
       dgvItem.Columns(3).Width = 100
       dgvItem.Columns(4).Width = 100
       dgvItem.Columns(5).Width = 100

       dgvItem.Columns(0).HeaderText = "الكود"
       dgvItem.Columns(1).HeaderText = "الصنف"
       dgvItem.Columns(2).HeaderText = "سعر البيع"
       dgvItem.Columns(3).HeaderText = "سعر الشراء"
       dgvItem.Columns(4).HeaderText = "الكمية المخزنة"
       dgvItem.Columns(5).HeaderText = "الكمية المتبقية"

   End Sub
   Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
       clearTXTitem()
       actTXTitem()
   End Sub
   Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
       If txtCode.Text = "" Or txtName.Text = "" Or txtPrice.Text = "" Or txtchira.Text = "" Or txtQty.Text = "" Then
           MsgBox("أكمل الحقول الفارغة")
           Exit Sub
       End If
       Try
           If txtCode.Enabled = True Then
               For i As Integer = 0 To dgvItem.Rows.Count - 1
                   If txtCode.Text = dgvItem.Rows(i).Cells(1).Value Then
                       MsgBox("  هذاالصنف موجود من قبل  " + txtCode.Text)
                       Exit Sub
                   End If
               Next
               InsertItem(txtCode.Text, txtName.Text, txtPrice.Text, txtQty.Text, txtchira.Text)
               loadItem()
               MsgBox("تم التحديث بنجاح")
           Else
               UpdateItem(txtName.Text, txtPrice.Text, txtQty.Text, txtCode.Text, txtchira.Text)
               loadItem()
               MsgBox("تم التحديث بنجاح")
           End If
       Catch ex As Exception
           MsgBox(ex.Message, MsgBoxStyle.Critical, "خطأ ... راجع البيانات المدخله !")
       Finally
           con.Close()
       End Try
       txtSearch.Clear()
       clearTXTitem()
       desActTXTitem()
   End Sub

   Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
       Try
           actTXTitem()
           txtCode.Enabled = False
           txtCode.Text = dgvItem.CurrentRow.Cells(0).Value
           txtName.Text = dgvItem.CurrentRow.Cells(1).Value
           txtPrice.Text = dgvItem.CurrentRow.Cells(2).Value
           txtchira.Text = dgvItem.CurrentRow.Cells(3).Value
           txtQty.Text = dgvItem.CurrentRow.Cells(4).Value
       Catch ex As Exception
           MsgBox(ex.Message, MsgBoxStyle.Critical, "تأكد من وجود بيانات !")
       Finally
           con.Close()
       End Try
   End Sub

   Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
       Try
           If MessageBox.Show("هل تريد بالفعل حذف : " + dgvItem.CurrentRow.Cells(1).Value, "عملية الحذف ", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = Windows.Forms.DialogResult.Yes Then
               MsgBox("تم حذف  : " + dgvItem.CurrentRow.Cells(1).Value, MsgBoxStyle.Information, "تم الحذف")
               DeleteItem(dgvItem.CurrentRow.Cells(0).Value)
               loadItem()
           Else
               MsgBox("تم الغاء عملية حذف  : " + dgvItem.CurrentRow.Cells(1).Value, MsgBoxStyle.Exclamation, "تم الغاء الحذف")
               loadItem()
           End If
       Catch ex As Exception
           MsgBox(ex.Message, MsgBoxStyle.Critical, "تأكد من وجود بيانات !")
       Finally
           con.Close()
       End Try
   End Sub

   Private Sub txtSearch_TextChanged(sender As Object, e As EventArgs) Handles txtSearch.TextChanged
       Try
           cmdb = New OleDbCommandBuilder(da)
           Dim dtSearch As DataTable = dtItem.Copy
           Dim dv As DataView = dtSearch.DefaultView
           dv.RowFilter = "code + nam LIKE '%" & txtSearch.Text & "%'"
           dgvItem.DataSource = dv
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub

End Class
------------------------
منكم أتعلم
------------------------

الرد
تم الشكر بواسطة:
#2
وعليكم السلام...
يجب ذكر امتداد الاداة فمثلا أدوات الكتابة مثل التيكست والليب...الخ يجب ذكر بعدهم امتدا Text
فتصير Textbox1.Text  ويجب ان يوكون نوع الحقل غير الترتيب التلقائي
كود :
.cmd.Parameters.Add("@code", OleDbType.VarChar).Value = Code.text
الرد
تم الشكر بواسطة: ابراهيم ايبو , baha , baha
#3
هل هذا الكود الذي هو مزيج من الأحرف و الأرقام من نوع رقمي بقاعدة البيانات و هل هو المفتاح الرئيسي بالجدول ..؟
الرد
تم الشكر بواسطة: اسامه الهرماوي , ابراهيم ايبو , baha
#4
(08-11-19, 01:04 PM)عبد العزيز البسكري كتب :
هل هذا الكود الذي هو مزيج من الأحرف و الأرقام من نوع رقمي بقاعدة البيانات و هل هو المفتاح الرئيسي بالجدول ..؟


الملفات المرفقة
.rar   MS.rar (الحجم : 38.83 ك ب / التحميلات : 7)
------------------------
منكم أتعلم
------------------------

الرد
تم الشكر بواسطة: اسامه الهرماوي , ابراهيم ايبو , baha
#5
من فظلكم يا أساتذة قمت بتعديل قاعدة البيانات و اعطيت للكود صيغة النص بدل الرقم لكن دون فائدة أين الخطأ؟؟؟؟؟؟؟؟؟؟؟؟
------------------------
منكم أتعلم
------------------------

الرد
تم الشكر بواسطة: ابراهيم ايبو , baha
#6
السلام عليكم ورحمة الله وبركاته

قم بإلغاء العلاقات المرتبطة بهذا الحقل وغيّر نوع البيانات فيه إلى نص وجميع الحقول المرتبطة به أيضاً وثمّ إعادة ربط علاقات هذا الحقل

   







تمنياتي لك وللجميع التوفيق
الرد
#7
(08-11-19, 04:07 PM)baha كتب : السلام عليكم ورحمة الله وبركاته

قم بإلغاء العلاقات المرتبطة بهذا الحقل وغيّر نوع البيانات فيه إلى نص وجميع الحقول المرتبطة به أيضاً وثمّ إعادة ربط علاقات هذا الحقل


تمنياتي لك وللجميع التوفيق

بوركت أخي لكن نفس الشيئ

من يقوم بالتعديل على قاعدة البيانات او الكود و له مني جزيل الشكر


الملفات المرفقة
.rar   MS.rar (الحجم : 40.04 ك ب / التحميلات : 13)
------------------------
منكم أتعلم
------------------------

الرد
تم الشكر بواسطة: ابراهيم ايبو , baha
#8
هل من منقذ بارك الله فيكم
------------------------
منكم أتعلم
------------------------

الرد
تم الشكر بواسطة: ابراهيم ايبو , baha
#9
السلام عليكم اخي الكريم
حقل كود الصنف في قاعدة البيانات اذا كان من نوع رقم قم بتحويله الى نص لانك تدخل حروف وارقام راجع قاعدة البيانات
واذا كان هو الاي دي يجب عليك عند التعديل ان يكون هو الشرط  هو الشرط 
ويفضل ان يكون لديك حقل اي دي مستقل
اعددت لك هذا المثال وفق الحقول التي لديك اضافة الى حقل اي دي


الملفات المرفقة
.rar   sofian.rar (الحجم : 85.68 ك ب / التحميلات : 4)
الرد
تم الشكر بواسطة: sofiane-phy , baha , baha
#10
(08-11-19, 10:53 PM)ابراهيم ايبو كتب :
السلام عليكم اخي الكريم
حقل كود الصنف في قاعدة البيانات اذا كان من نوع رقم قم بتحويله الى نص لانك تدخل حروف وارقام راجع قاعدة البيانات
واذا كان هو الاي دي يجب عليك عند التعديل ان يكون هو الشرط  هو الشرط 
ويفضل ان يكون لديك حقل اي دي مستقل
اعددت لك هذا المثال وفق الحقول التي لديك اضافة الى حقل اي دي

بارك الله فيك يساعدني كثير ان شاء الله
------------------------
منكم أتعلم
------------------------

الرد
تم الشكر بواسطة: ابراهيم ايبو , baha



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


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