منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] عدم الحفظ في قاعدة البيانات - نسخة قابلة للطباعة

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



عدم الحفظ في قاعدة البيانات - Mtaktak - 19-12-19

السلام عليكم

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


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

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

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



RE: عدم الحفظ في قاعدة البيانات - boudyonline - 19-12-19

الافضل ارفق البرنامج


RE: عدم الحفظ في قاعدة البيانات - Mtaktak - 20-12-19

انا استخدم الكود هذا للتعديل


كود :
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



RE: عدم الحفظ في قاعدة البيانات - معاند الحظ - 20-12-19

وعليك السلام ورحمة الله
اعتقد ان سبب عدم الحفظ هو انك لم تضع فاصلة التعليق " ' " في جملة الاستعلام
حاول تعدل السطر التالي في كودك
كود :
where ID=" & Me.cmbID.Text & ""

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


RE: عدم الحفظ في قاعدة البيانات - Mtaktak - 20-12-19

الف شكر اخوي على المرور    

انا عملت جميع الاحتمالات
عملت ' " &      & " '
وبالنسبة ل Try
عاملها في زر امر الحفظ
ولكن دون جدوى



RE: عدم الحفظ في قاعدة البيانات - معاند الحظ - 20-12-19

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

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


RE: عدم الحفظ في قاعدة البيانات - Mtaktak - 20-12-19

الف شكر اخوي معاند

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

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

ما هو الحل



RE: عدم الحفظ في قاعدة البيانات - معاند الحظ - 20-12-19

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

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

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



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


RE: عدم الحفظ في قاعدة البيانات - Mtaktak - 20-12-19

اوك ولا يهمك

هذا هو :
[attachment=23713]

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

الله يكثر من امثالك



RE: عدم الحفظ في قاعدة البيانات - معاند الحظ - 20-12-19

اخي قم بتعديل جملة الاتصال والموجودة في الملف 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"

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