ممكن حل للمشكلة هدي - Alanwalker - 15-06-21
السلام عليكم
عند التعديل علي فورم الاصناف تظهر معاي هدي الريسالة ياريت حل للمشكلة
كود التعديل
PHP كود :
Private Sub BtnEdit_Click(sender As Object, e As EventArgs) Handles BtnEdit.Click Update_Items(ItemID.Text, ItemBarcode.Text, ItemName.Text, ItemGroup.Text, ItemCompany.Text, ItemPlace.Text, ItemPrice.Text, ItemQty.Text, ItemLimit.Text, ItemMaxDiscound.Text, ItemEran.Text, ItemDate.Value, ItemTime.Value, ItemUser.Text) Load_Items() End Sub
كود التعديل 2
PHP كود :
Public Sub Update_Items(ByVal ItemID AS Long, ByVal ItemBarcode AS String,ByVal ItemName AS String,ByVal ItemGroup AS String,ByVal ItemCompany AS String,ByVal ItemPlace AS String,ByVal ItemPrice AS Decimal, ByVal itemQty As Decimal, ByVal ItemLimit As Decimal, ByVal ItemMaxDiscound As Decimal, ByVal ItemEran As Decimal,ByVal ItemDate AS DateTime,ByVal ItemTime AS DateTime,ByVal ItemUser AS String) Dim Cmd As New OledbCommand With Cmd .Connection = Con .CommandType = CommandType.Text .CommandText = "Update Items Set ItemID = @ItemID,ItemBarcode = @ItemBarcode,ItemName = @ItemName,ItemGroup = @ItemGroup,ItemCompany = @ItemCompany,ItemPlace = @ItemPlace,ItemPrice = @ItemPrice,ItemQty = @ItemQty,ItemLimit = @ItemLimit,ItemMaxDiscound = @ItemMaxDiscound,ItemEran = @ItemEran,ItemDate = @ItemDate,ItemTime = @ItemTime,ItemUser = @ItemUser" .Parameters.AddWithValue("@ItemID", OleDbType.Integer ).Value = ItemID .Parameters.AddWithValue("@ItemBarcode", OleDbType.VarWChar ).Value = ItemBarcode .Parameters.AddWithValue("@ItemName", OleDbType.VarWChar ).Value = ItemName .Parameters.AddWithValue("@ItemGroup", OleDbType.VarWChar ).Value = ItemGroup .Parameters.AddWithValue("@ItemCompany", OleDbType.VarWChar ).Value = ItemCompany .Parameters.AddWithValue("@ItemPlace", OleDbType.VarWChar ).Value = ItemPlace .Parameters.AddWithValue("@ItemPrice", OleDbType.Double ).Value = ItemPrice .Parameters.AddWithValue("@ItemQty", OleDbType.Double ).Value = ItemQty .Parameters.AddWithValue("@ItemLimit", OleDbType.Double ).Value = ItemLimit .Parameters.AddWithValue("@ItemMaxDiscound", OleDbType.Double ).Value = ItemMaxDiscound .Parameters.AddWithValue("@ItemEran", OleDbType.Double ).Value = ItemEran .Parameters.AddWithValue("@ItemDate", OleDbType.Date ).Value = ItemDate .Parameters.AddWithValue("@ItemTime", OleDbType.Date ).Value = ItemTime .Parameters.AddWithValue("@ItemUser", OleDbType.VarWChar ).Value = ItemUser
End With If Con.State = 1 Then Con.Close() Con.Open() Cmd.ExecuteNonQuery() Con.Close() MsgBox("تم تعديل السجل بنجاح", MsgBoxStyle.Information, "تعديل") Cmd = Nothing End Sub
RE: ممكن حل للمشكلة هدي - ابراهيم ايبو - 15-06-21
السلام عليكم ورحمة الله وبركاته
احي الكريم
انت لم تضع حقل الشرط الذي سيتم بموجبه اختيار السجل لتعديله وهو هنا ItemID
الامر الاخر في جملة التعديل نضع كل الحقول التي سيتم التعديل عليها اولا ثم حقل الشرط في النهاية
تفضل التعديل
كود :
Public Sub Update_Items(ByVal ItemBarcode As String, ByVal ItemName As String, ByVal ItemGroup As String, ByVal ItemCompany As String, ByVal ItemPlace As String, ByVal ItemPrice As Decimal, ByVal itemQty As Decimal, ByVal ItemLimit As Decimal, ByVal ItemMaxDiscound As Decimal, ByVal ItemEran As Decimal, ByVal ItemDate As DateTime, ByVal ItemTime As DateTime, ByVal ItemUser As String, ByVal ItemID As Integer)
Dim Cmd As New OledbCommand
With Cmd
.Connection = Con
.CommandType = CommandType.Text
.CommandText = "Update Items Set ItemBarcode = @ItemBarcode,ItemName = @ItemName,ItemGroup = @ItemGroup,ItemCompany = @ItemCompany,ItemPlace = @ItemPlace,ItemPrice = @ItemPrice,ItemQty = @ItemQty,ItemLimit = @ItemLimit,ItemMaxDiscound = @ItemMaxDiscound,ItemEran = @ItemEran,ItemDate = @ItemDate,ItemTime = @ItemTime,ItemUser = @ItemUser Where ItemID = @ItemID"
.Parameters.AddWithValue("@ItemBarcode", OleDbType.VarWChar).Value = ItemBarcode
.Parameters.AddWithValue("@ItemName", OleDbType.VarWChar).Value = ItemName
.Parameters.AddWithValue("@ItemGroup", OleDbType.VarWChar).Value = ItemGroup
.Parameters.AddWithValue("@ItemCompany", OleDbType.VarWChar).Value = ItemCompany
.Parameters.AddWithValue("@ItemPlace", OleDbType.VarWChar).Value = ItemPlace
.Parameters.AddWithValue("@ItemPrice", OleDbType.Double).Value = ItemPrice
.Parameters.AddWithValue("@ItemQty", OleDbType.Double).Value = itemQty
.Parameters.AddWithValue("@ItemLimit", OleDbType.Double).Value = ItemLimit
.Parameters.AddWithValue("@ItemMaxDiscound", OleDbType.Double).Value = ItemMaxDiscound
.Parameters.AddWithValue("@ItemEran", OleDbType.Double).Value = ItemEran
.Parameters.AddWithValue("@ItemDate", OleDbType.Date).Value = ItemDate
.Parameters.AddWithValue("@ItemTime", OleDbType.Date).Value = ItemTime
.Parameters.AddWithValue("@ItemUser", OleDbType.VarWChar).Value = ItemUser
.Parameters.AddWithValue("@ItemID", OleDbType.Integer).Value = ItemID
End With
If Con.State = 1 Then Con.Close()
Con.Open()
Cmd.ExecuteNonQuery()
Con.Close()
MsgBox("تم تعديل السجل بنجاح", MsgBoxStyle.Information, "تعديل")
Cmd = Nothing
End Sub
تعديل كود الزر
كود :
Private Sub BtnEdit_Click(sender As Object, e As EventArgs) Handles BtnEdit.Click
Update_Items(ItemBarcode.Text, ItemName.Text, ItemGroup.Text, ItemCompany.Text, ItemPlace.Text, Convert.ToDecimal(ItemPrice.Text), Convert.ToDecimal(ItemQty.Text), Convert.ToDecimal(ItemLimit.Text), Convert.ToDecimal(ItemMaxDiscound.Text), Convert.ToDecimal(ItemEran.Text), ItemDate.Value, ItemTime.Value, ItemUser.Text, Convert.ToInt32(ItemID.Text))
Load_Items()
End Sub
ملاحظة : كان لديك اختلاف ايضا في نوع حقل الاي دي حيث تم تعريفه في سطر اسم تعريف الصب من نوع long وفي الباراميتر integer تم تعديله عدله في قاعدة البيانات ليتوافق ايضا
في كود زر التعديل كل مربعات النصوص قم بتحويلها الى نوع بيانات الحقل ايضا بالرغم من ان الفيجوال بيسك يتساهل في هذه النقطة لكن تحويلها افضل تم تعديلها
لا اعلم ان كان هناك اخطاء اخرى تتعلق باسماء الحقول او شي أخر جرب الكود اولا
RE: ممكن حل للمشكلة هدي - Alanwalker - 15-06-21
جزاك الله خيرا تم جل المشكلة وربي يعطيك مزيدا من العلم والتقدم سلمت يداك
RE: ممكن حل للمشكلة هدي - ابراهيم ايبو - 15-06-21
الحمد لله والشكر لله
ولك اخي الكريم
|