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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=30955)



الكود يعمل بشكل صحيح ولكن - خالد كامل1 - 18-08-19

السلام عليكم احبتى فى الله
اعلم باننى كثير الاسئله فاعزرونى واقدر لكم كل مجهوداتكم معى
اتمنى من الله ان تكونوا باتم الصحه والخير 

هذا الكود الموضح يعمل معى تمام فى استعاده النسخه الاحتياطيه ولكن به مشكله 
عند استعاده النسخه 
يستعيدها بعمليه صحيحيه جدا 
ولكن بعد الاستعاده لو قمت باى اجراء على البرنامج يعطينى انه لا يوجد قاعده البيانات التى مسارها 
الغريب بنها تاخذ المسار الئى اخذت منه النسخه الاحتياطيه 
ولولا ان اقفل البرنامج واعاود فتحه حتى يعود كل شئ كما كان ويعمل البرنامج بشكل صحيح
فهل هناك خطأ فى الكود وماهى الطريقه التى يجعل البرنامج ياخذ نفس مسار قاعده البيانات بدون غلقه
وشكرا 
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try


           Dim scrpath, destpath, compdestpath As String
           Dim OFD As New OpenFileDialog
           destpath = Application.StartupPath & " "
           compdestpath = Path.Combine(destpath, "SADANY.accdb")
           OFD.Filter = "Microsost Access 2007|*.Accdb"
           If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
               scrpath = OFD.FileName

           End If
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then
               If MessageBox.Show(" هل تريد فعلا الاستعاده ", "تنبيه", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                   Exit Sub
               Else



                   My.Computer.FileSystem.DeleteFile(compdestpath)
                   My.Computer.FileSystem.CopyFile(OFD.FileName, compdestpath)
                   con.Open()
                   MsgBox("تم ستعاده النسخه بنجاح")

               End If
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try


   End Sub



RE: الكود يعمل بشكل صحيح ولكن - خالد كامل1 - 18-08-19

ارجو الاجابه


RE: الكود يعمل بشكل صحيح ولكن - Emam emam - 18-08-19

(18-08-19, 12:14 AM)خالد كامل1 كتب : السلام عليكم احبتى فى الله
اعلم باننى كثير الاسئله فاعزرونى واقدر لكم كل مجهوداتكم معى
اتمنى من الله ان تكونوا باتم الصحه والخير 

هذا الكود الموضح يعمل معى تمام فى استعاده النسخه الاحتياطيه ولكن به مشكله 
عند استعاده النسخه 
يستعيدها بعمليه صحيحيه جدا 
ولكن بعد الاستعاده لو قمت باى اجراء على البرنامج يعطينى انه لا يوجد قاعده البيانات التى مسارها 
الغريب بنها تاخذ المسار الئى اخذت منه النسخه الاحتياطيه 
ولولا ان اقفل البرنامج واعاود فتحه حتى يعود كل شئ كما كان ويعمل البرنامج بشكل صحيح
فهل هناك خطأ فى الكود وماهى الطريقه التى يجعل البرنامج ياخذ نفس مسار قاعده البيانات بدون غلقه
وشكرا 
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try


           Dim scrpath, destpath, compdestpath As String
           Dim OFD As New OpenFileDialog
           destpath = Application.StartupPath & " "
           compdestpath = Path.Combine(destpath, "SADANY.accdb")
           OFD.Filter = "Microsost Access 2007|*.Accdb"
           If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
               scrpath = OFD.FileName

           End If
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then
               If MessageBox.Show(" هل تريد فعلا الاستعاده ", "تنبيه", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                   Exit Sub
               Else



                   My.Computer.FileSystem.DeleteFile(compdestpath)
                   My.Computer.FileSystem.CopyFile(OFD.FileName, compdestpath)
                   con.Open()
                   MsgBox("تم ستعاده النسخه بنجاح")

               End If
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try


   End Sub
وعليكم السلام ورحمة الله وبركاته
جرب الكود بعد التعديل وان شاء الله يعمل معك بشكل صحيح
PHP كود :
 Dim scrpathdestpathcompdestpath As String
            destpath 
Application.StartupPath
            compdestpath 
Path.Combine(destpath"SADANY.accdb")
 
           OpenFileDialog1.Filter "Access DB | *.accdb | All Files | *"
 
           If OpenFileDialog1.ShowDialog DialogResult.OK Then
                scrpath 
OpenFileDialog1.FileName
            End 
If

 
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then

                If connSQL
.State 1 Then connSQL.Close()
 
               connSQL.Open()
 
               connSQL.Close()
 
               My.Computer.FileSystem.DeleteFile(compdestpath)
 
               My.Computer.FileSystem.CopyFile(OpenFileDialog1.FileNamecompdestpathTrue)
 
               MsgBox("تم استرجاع البيانات بنجاح")
 
           Else
                MsgBox
("قاعدة البيانات مفقوده")
 
           End If 



RE: الكود يعمل بشكل صحيح ولكن - خالد كامل1 - 18-08-19

(18-08-19, 02:55 AM)Emam emam كتب :
(18-08-19, 12:14 AM)خالد كامل1 كتب : السلام عليكم احبتى فى الله
اعلم باننى كثير الاسئله فاعزرونى واقدر لكم كل مجهوداتكم معى
اتمنى من الله ان تكونوا باتم الصحه والخير 

هذا الكود الموضح يعمل معى تمام فى استعاده النسخه الاحتياطيه ولكن به مشكله 
عند استعاده النسخه 
يستعيدها بعمليه صحيحيه جدا 
ولكن بعد الاستعاده لو قمت باى اجراء على البرنامج يعطينى انه لا يوجد قاعده البيانات التى مسارها 
الغريب بنها تاخذ المسار الئى اخذت منه النسخه الاحتياطيه 
ولولا ان اقفل البرنامج واعاود فتحه حتى يعود كل شئ كما كان ويعمل البرنامج بشكل صحيح
فهل هناك خطأ فى الكود وماهى الطريقه التى يجعل البرنامج ياخذ نفس مسار قاعده البيانات بدون غلقه
وشكرا 
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try


           Dim scrpath, destpath, compdestpath As String
           Dim OFD As New OpenFileDialog
           destpath = Application.StartupPath & " "
           compdestpath = Path.Combine(destpath, "SADANY.accdb")
           OFD.Filter = "Microsost Access 2007|*.Accdb"
           If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
               scrpath = OFD.FileName

           End If
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then
               If MessageBox.Show(" هل تريد فعلا الاستعاده ", "تنبيه", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                   Exit Sub
               Else



                   My.Computer.FileSystem.DeleteFile(compdestpath)
                   My.Computer.FileSystem.CopyFile(OFD.FileName, compdestpath)
                   con.Open()
                   MsgBox("تم ستعاده النسخه بنجاح")

               End If
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try


   End Sub
وعليكم السلام ورحمة الله وبركاته
جرب الكود بعد التعديل وان شاء الله يعمل معك بشكل صحيح
PHP كود :
 Dim scrpathdestpathcompdestpath As String
            destpath 
Application.StartupPath
            compdestpath 
Path.Combine(destpath"SADANY.accdb")
 
           OpenFileDialog1.Filter "Access DB | *.accdb | All Files | *"
 
           If OpenFileDialog1.ShowDialog DialogResult.OK Then
                scrpath 
OpenFileDialog1.FileName
            End 
If

 
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then

                If connSQL
.State 1 Then connSQL.Close()
 
               connSQL.Open()
 
               connSQL.Close()
 
               My.Computer.FileSystem.DeleteFile(compdestpath)
 
               My.Computer.FileSystem.CopyFile(OpenFileDialog1.FileNamecompdestpathTrue)
 
               MsgBox("تم استرجاع البيانات بنجاح")
 
           Else
                MsgBox
("قاعدة البيانات مفقوده")
 
           End If 
لم تفلح الطريقه يعطينى نفس الخطأ


RE: الكود يعمل بشكل صحيح ولكن - ابراهيم ايبو - 18-08-19

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

كود :
Application.Restart()



RE: الكود يعمل بشكل صحيح ولكن - خالد كامل1 - 18-08-19

(18-08-19, 04:21 AM)ابراهيم ايبو كتب :
السلام عليكم اخي خالد
الامر الذي تتحدث عنه طبيعي يجب اعادة تشغيل البرنامج بعد اعادة قاعدة البيانات ليتم الاتصال مع القاعدة الجديدة حتى ولو كانت بنفس الاسم
يمكنك كتابة السطر التالي في نهاية كود Restore ليتم عمل Restart للبرنامج

كود :
Application.Restart()
الله عليك بارك الله فيك