منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
اين الخطا - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : اين الخطا (/showthread.php?tid=42039)



اين الخطا - نهى علي - 28-07-22

السلام عليكم
الاخوة الكرام
لقد عملت مشروع ويظهر لي خطا في الحفظ وهذا هو الكود علما انني استخدم فيجوال 2010
PHP كود :
هذا في المودل  Imports System.Data.OleDb
---------------------------------------
 
   Public GroupsDT As New DataTable
    Public GroupsDA 
As New OleDbDataAdapter
    Public MynewIDGroups 
As Integer
    Public Sub Load_Groups
()
 
       GroupsDT.Clear()
 
       GroupsDA = New OleDbDataAdapter("Select * from Groups"Con)
 
       GroupsDA.Fill(GroupsDT)

 
   End Sub
    Public Sub Code_Groups
()
 
       Dim dt As New DataTable
        Dim da 
As New OleDbDataAdapter("SELECT MAX(GroupID) from Groups"Con)
 
       da.Fill(dt)
 
       If IsDBNull(dt(0)(0)) = True Then
            MynewIDGroups 
1
        Else
            MynewIDGroups 
dt(0)(0) + 1
        End 
If
 
   End Sub 

PHP كود :
هذا في الكلاس
Imports System
.Data.OleDb

Public Class ItemGroups
    Public Sub claregroups
()
 
       Code_Groups()
 
       GroupDate.Value Now.Date
        GroupID
.Text MynewIDGroups
        GroupName
.Text ""
 
       GroupTime.Value Now
        GroupUser
.Text ""
 
   End Sub
    Private Sub ItemGroups_Load
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        Load_Groups
()
 
       DataGridView1.DataSource GroupsDT
        claregroups
()
 
   End Sub


    Private Sub Button1_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        GroupsDT
.Rows.Add()
 
       Dim Last As Integer GroupsDT.Rows.Count 1
        GroupsDT
.Rows(Last).Item("GroupDate") = GroupDate.Value
        GroupsDT
.Rows(Last).Item("GroupID") = GroupID.Text
        GroupsDT
.Rows(Last).Item("GroupName") = GroupName.Text
        GroupsDT
.Rows(Last).Item("GroupTime") = GroupTime.Value
        GroupsDT
.Rows(Last).Item("GroupUser") = GroupUser.Text
        Dim Save 
As New OleDbCommandBuilder(GroupsDA)
 
          الخطا يظهر في هذا السطر ولايتم الحفظGroupsDA.Update(GroupsDT)
 
       GroupsDT.AcceptChanges()
 
       Load_Groups()
 
       claregroups()
 
   End Sub
End 
Class 



RE: اين الخطا - أبو خالد الشكري - 29-07-22

وعليكم السلام
أنتِ لم تضعي صورة لرسالة الخطأ التي تظهر .


RE: اين الخطا - ابراهيم ايبو - 29-07-22

السلام عليكم ورحمة الله وبركاته
اختي الكريمة
السجل الاخير عادة لايكون موجود بل نضيفه و هنا يجب ان لا تكون عدد سجلات -1 الداتا تابل بل  زيادة واحد  
اي تغيير هذا السطر
كود :
Dim Last As Integer = GroupsDT.Rows.Count - 1
الى هذا السطر
كود :
Dim Last As Integer = GroupsDT.Rows.Count
لان العد يبدأ من الصفر وبالتالي عدد السجلات الموجودة هو عدد الصفوف ناقص واحد وعند اضافة سجل جديد يكون  السجل الاخير المضاف  وهنا ازالة الناقص واحد


RE: اين الخطا - نهى علي - 29-07-22

استاذ ابراهيم 
انا عرفت الداله في الموديل على أنها تساوي قيمة الصفر وبالتالي يكون اid= 1 وقد عملت نفس الطريقه التي قلتها ولكنها لم تنجح معي
الكود متأكده منه صحيح وقد استخدمته كثيرا وكان يتم الحفظ لكن هذه المره تظهر رسالة خطأ تقول الدالة غير مطابقة او غير موجودة اقصد(dt) اذا كان هنالك حل آخر فارجوا ان تسعفوني به


RE: اين الخطا - ابراهيم ايبو - 29-07-22

السلام عليكم  
اختي الكريمة 
لم اتفحص كامل الكود فقط وقعت عيناي على السطر الذي كتبته لك وبعد ردك تتبعت كود الحفظ فوجدت انك لم تنشئي صف الاضافة وبذك يكون الكود على النحو التالي
كود :
       
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   
Dim Last As Integer = GroupsDT.Rows.Count
Dim row As DataRow = GroupsDT.NewRow
GroupsDT.Rows.Add()
       GroupsDT.Rows(Last).Item("GroupDate") = GroupDate.Value
       GroupsDT.Rows(Last).Item("GroupID") = GroupID.Text
       GroupsDT.Rows(Last).Item("GroupName") = GroupName.Text
       GroupsDT.Rows(Last).Item("GroupTime") = GroupTime.Value
       GroupsDT.Rows(Last).Item("GroupUser") = GroupUser.Text
       Dim Save As New OleDbCommandBuilder(GroupsDA)
          GroupsDA.Update(GroupsDT)
       GroupsDT.AcceptChanges()
       Load_Groups()
       claregroups()
   End Sub



RE: اين الخطا - نهى علي - 29-07-22

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

لكم كل الشكر والتقدير


RE: اين الخطا - ابراهيم ايبو - 29-07-22

السلام عليكم ورحمة الله وبركاته
اختي الكريمة 
في قاعدة البيانات كان يوجد بند  validation Rule كان مفعل تحقق تم الغاؤه لكل من حقلي التاريخ والوقت
وفي الاكواد كما ذكرت لك سابقا مع بعض التعديلات الطفيفة 
اليك المثال


RE: اين الخطا - نهى علي - 29-07-22

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


RE: اين الخطا - ابراهيم ايبو - 30-07-22

الحمد لله والشكر لله
ولك أيضا أختي الكريمة نهى علي
كلماتكم الطيبة وسام على صدر هذا المنتدى الغالي