منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عدم الحفظ في قاعدة البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

عندي برنامج مربوط بقاعدة بيانات عن طريق الكود


فمت بعمل زر حفظ ووضعت كوود الحفظ

اثناء عمل البرنامج كل شي تمام

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


كود :
Private Sub Update_Studant(ByVal ID As Integer, ByVal DicName As String, ByVal DicNo As String, ByVal Issu As String, ByVal Exp As String)
       Dim sSQL As String = "Update DicT set ID=@ID,DicName=@DicName,DicNo=@DicNo,Issu=@Issu,Exp=@Exp where ID=" & Me.cmbID.Text & ""

       Dim cmd As New OleDbCommand(sSQL, Con)
       cmd.Parameters.Add(New OleDbParameter("@ID", OleDbType.VarWChar)).Value = ID
       cmd.Parameters.Add(New OleDbParameter("@DicName", OleDbType.VarWChar)).Value = DicName
       cmd.Parameters.Add(New OleDbParameter("@DicNo", OleDbType.VarWChar)).Value = DicNo
       cmd.Parameters.Add(New OleDbParameter("@Issu", OleDbType.VarWChar)).Value = Issu
       cmd.Parameters.Add(New OleDbParameter("@Exp", OleDbType.VarWChar)).Value = Exp

       If Con.State = ConnectionState.Open Then Con.Close()

       Con.Open()
       cmd.ExecuteNonQuery()
       Con.Close()
       MessageBox.Show("Update SuccessFully", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information)
   End Sub
وعليك السلام ورحمة الله
اعتقد ان سبب عدم الحفظ هو انك لم تضع فاصلة التعليق " ' " في جملة الاستعلام
حاول تعدل السطر التالي في كودك
كود :
where ID=" & Me.cmbID.Text & ""

الى 
كود :
where ID='" & Me.cmbID.Text & "'"
لكن برضو لو كان هذا السبب فلابد ينتج الفيجوال بيسك رسالة خطأ عند اختبار الكود
تأكد انك لا تحيط الكود لديك بجملة try.. catch
الف شكر اخوي على المرور    

انا عملت جميع الاحتمالات
عملت ' " &      & " '
وبالنسبة ل Try
عاملها في زر امر الحفظ
ولكن دون جدوى
هناك سبب اخر ويبدو انه هو الارجح
وهو انك عندما اضفت مصدر البيانات في الفيجوال بيسك الى برنامجك اخترت ان يحفظ الفيجوال بيسك ملف قاعدة البيانات
في مجلد غير مجلد الاخراج bin\Debug ومن هنا هذا يجعل الفيجوال بيسك يقوم بنسخ ملف قاعدة البيانات
الى مجلد الاخراج في كل مرة .
جرب وابحث في مجلدات برنامجك اثناء تشغيله فسوف تجد على الارجح ملفين لقاعدة البيانات واحد في المجلد الذي يحمل
اسم برنامجك والثاني في مجلد الاخراج

واذا كان هذا هو السبب فالحل يكون بحذف الملف ذا التنسيق .xsd من نافذة Solution Explorer ومن ثم اضافته من جديد
لكن مع الانتباه الى ان تختار No اذا ضهرت لك رسالة يسالك الفيجوال بيسك هل تريد نسخ ملف قاعدة البيانات
الف شكر اخوي معاند

فعلا لاحظت ان البرنامج يعمل نسخة في bin\Debug

ولكن ما حصلت الملف الي تقول عليه
الي تنسيقه .XSD  في Solution Explorer

ما هو الحل
طيب ممكن ترفع نسخه من برنامجك عشان اشوفها وارد عليك
بس عشان ما اطول عليك بالرد ونفس الوقت اعطيك جواب صحيح

باختصار السبب في عدم الحفظ ليس ان برنامجك لا يحفظ التعديل
لكن لانه يحفظ التعديل في ملف قاعدة البيانات الاخر غير الذي تستخدمه او الذي تريد استخدامه لحفظ البيانات

شاهد هذا الفيديو وان شاء الله تحل المشكلة



واذا ماكان الحل واضح فياليت ترفع مشروعك 
واعتذر اذا لم استطع المساعدة
اوك ولا يهمك

هذا هو :
[attachment=23713]

شكرا اخوي عناد
حلت المشكلة
بفضل الله ثم مجهودك

الله يكثر من امثالك
اخي قم بتعديل جملة الاتصال والموجودة في الملف Module1.vb
من هذي 

كود :
Dim Str As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=DicData.MDB;Persist Security Info=False"

الى هذي
كود :
   Dim Str As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=المسار الكامل لمكان ملف قاعدة البيانات;Persist Security Info=False"
مثلا
كود :
   Dim Str As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=D:\VB Tools\net\net\WindowsApplication5\WindowsApplication5\DicData.MDB;Persist Security Info=False"

الحمدلله اخوي
يسرني المساعدة