تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف يُمكن أدخال أداة ال Progress Bar للتزامن مع نسخ قاعدة بيانات الأكسس؟
#1
بسم الله الرحمن الرحيم



إخواني الكِرام هذا كود نسخ قاعدة البيانات :
PHP كود :
       If My.Settings.BupDB Now.Date Then
            If con
.State ConnectionState.Open Then con.Close()
 
           If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\")
            My.Computer.FileSystem.CopyFile(Application.StartupPath & "
/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", True)
        End If 

كيف يُمكن إدخال أداة ال Progress Bar كي تتزامن مع عملية نسخ قاعدة البيانات، لأني استطعت إدراجها ولكن مجرد شكل وليس بالتزامن، وجزاكم الله خيراً
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.

الرد }}}
تم الشكر بواسطة:
#2
جرب هذا

كود :
My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)
الرد }}}
تم الشكر بواسطة: Hazem1 , جاسم عبد
#3
(04-10-18, 09:47 PM)rnmr كتب : جرب هذا

كود :
My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)

أخي الكريم rnmr هل ممكن توضح لي فائدة الكود في عملية الارتباط بأداة ال ProgressBar لأني أشعر أن وظيفته في إطار عملية النسخ.
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.

الرد }}}
تم الشكر بواسطة: elgokr
#4
وظيفة الكود يظهر نافذة النسخ أو النقل الخاصة بالنظام والذي هو يمتلك تزامن عملية النقل أو النسخ.

جرب هذا


https://stackoverflow.com/a/34939234
كود :
Dim [sourceFile] As String = Application.StartupPath & "/A18.accdb"
Dim [targetFile] As String = "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb"

CopyFileWithProgress([sourceFile], [targetFile], Me.ProgressBar1)
كود :
Private Sub CopyFileWithProgress([sourceFile] As String, [targetFile] As String, [progress] As ProgressBar)
   'Create the file stream for the source file
   Dim streamRead As New System.IO.FileStream([sourceFile], System.IO.FileMode.Open)
   'Create the file stream for the destination file
   Dim streamWrite As New System.IO.FileStream([targetFile], System.IO.FileMode.Create)
   'Determine the size in bytes of the source file (-1 as our position starts at 0)
   Dim lngLen As Long = streamRead.Length - 1
   Dim byteBuffer(1048576) As Byte   'our stream buffer
   Dim intBytesRead As Integer    'number of bytes read

   While streamRead.Position < lngLen    'keep streaming until EOF
       'Read from the Source
       intBytesRead = (streamRead.Read(byteBuffer, 0, 1048576))
       'Write to the Target
       streamWrite.Write(byteBuffer, 0, intBytesRead)
       'Display the progress
       [progress].Value = CInt(streamRead.Position / lngLen * 100)
       Application.DoEvents()    'do it
   End While

   'Clean up
   streamWrite.Flush()
   streamWrite.Close()
   streamRead.Close()
End Sub
الرد }}}
تم الشكر بواسطة: Hazem1 , asemshahen5 , elgokr , princelovelorn , princelovelorn
#5
(04-10-18, 10:01 PM)rnmr كتب : وظيفة الكود يظهر نافذة النسخ أو النقل الخاصة بالنظام والذي هو يمتلك تزامن عملية النقل أو النسخ.

وماذا تفرق معك طالما ترى عملية النسخ أو النقل أمامك.

أخي الكريم [b]rnmr 
، عفواً لم أقصد أضايقك بالسؤال ولكن وددت أفهم الفائدة منه، وجزاك الله خيراً، المقصد أخي الفاضل هو استخدام أداة ال ProgressBar بحيث تظهر العد من 1 إلى 100 ولكن بشكلٍ حقيقي يتزامن فعلياً مع عملية النسخ وفقاً لحجم قاعدة البيانات، وليس بشكل وهمي، هذه الأكواد المُستخدمة ولكنها لا تتزامن مع عملية النسخ بشكل حقيقي
[/b]

زر النسخ :


PHP كود :
If My.Settings.BupDB Now.Date Then
                If con
.State ConnectionState.Open Then con.Close()
 
               If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\")
                My.Computer.FileSystem.CopyFile(Application.StartupPath & "
/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)
                Timer1.Enabled = True 
 
وهذا في أداة Timer :
PHP كود :
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
        If ProgressBar1
.Value <= ProgressBar1.Maximum 1 Then
            ProgressBar1
.Value += 1
        End 
If
 
   End Sub 
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.

الرد }}}
تم الشكر بواسطة: rnmr , rnmr
#6
جرب الطريقة التالية
كود :
   Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
       Try
           If My.Settings.BupDB < Now.Date Then
               If con.State = ConnectionState.Open Then con.Close()
               If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\")
               My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", True)
           End If

           PBR()

       Catch ex As Exception
           MessageBox.Show(ex.Message, "رسالة الخطأ")
       End Try

   End Sub
   Sub PBR()
       With ProgressBar1
           .Minimum = 1
           .Maximum = 100000
           .Value = 1
           .Step = 1
           For i As Integer = .Minimum To .Maximum
               .PerformStep()
           Next i
       End With
       MsgBox("تمت العملية بنجاح")
   End Sub
لا إله إلا الله وحده لا شريك له له الملك وله الحمد وهو على كل شئ قدير
سبحان الله وبحمده سبحان الله العظيم
سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولا حول ولا قوة إلا بالله العلى العظيم
رب أغفر لي 

الرد }}}
تم الشكر بواسطة: rnmr , Hazem1 , elgokr
#7
(04-10-18, 10:01 PM)rnmr كتب : وظيفة الكود يظهر نافذة النسخ أو النقل الخاصة بالنظام والذي هو يمتلك تزامن عملية النقل أو النسخ.

جرب هذا


https://stackoverflow.com/a/34939234
كود :
Dim [sourceFile] As String = Application.StartupPath & "/A18.accdb"
Dim [targetFile] As String = "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb"

CopyFileWithProgress([sourceFile], [targetFile], Me.ProgressBar1)
كود :
Private Sub CopyFileWithProgress([sourceFile] As String, [targetFile] As String, [progress] As ProgressBar)
   'Create the file stream for the source file
   Dim streamRead As New System.IO.FileStream([sourceFile], System.IO.FileMode.Open)
   'Create the file stream for the destination file
   Dim streamWrite As New System.IO.FileStream([targetFile], System.IO.FileMode.Create)
   'Determine the size in bytes of the source file (-1 as our position starts at 0)
   Dim lngLen As Long = streamRead.Length - 1
   Dim byteBuffer(1048576) As Byte   'our stream buffer
   Dim intBytesRead As Integer    'number of bytes read

   While streamRead.Position < lngLen    'keep streaming until EOF
       'Read from the Source
       intBytesRead = (streamRead.Read(byteBuffer, 0, 1048576))
       'Write to the Target
       streamWrite.Write(byteBuffer, 0, intBytesRead)
       'Display the progress
       [progress].Value = CInt(streamRead.Position / lngLen * 100)
       Application.DoEvents()    'do it
   End While

   'Clean up
   streamWrite.Flush()
   streamWrite.Close()
   streamRead.Close()
End Sub
جزاك الله خيراً أخي [b]rnmr، الكود يعمل بشكل صحيح، سامحني أتعبتك معي، يسر الله لك كل أمر ورزقك الهُدى والتُقى والعفاف والغنى.
[/b]

(04-10-18, 10:49 PM)princelovelorn كتب : جرب الطريقة التالية
كود :
   Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
       Try
           If My.Settings.BupDB < Now.Date Then
               If con.State = ConnectionState.Open Then con.Close()
               If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\")
               My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", True)
           End If

           PBR()

       Catch ex As Exception
           MessageBox.Show(ex.Message, "رسالة الخطأ")
       End Try

   End Sub
   Sub PBR()
       With ProgressBar1
           .Minimum = 1
           .Maximum = 100000
           .Value = 1
           .Step = 1
           For i As Integer = .Minimum To .Maximum
               .PerformStep()
           Next i
       End With
       MsgBox("تمت العملية بنجاح")
   End Sub

مشكور أخي الغالي princelovelorn الكود يعمل مع فارق السرعة Wink مع الأخ الكريم [b][b]rnmr ، أسعدكما الله ورزقكما الجنة وأغناكما من فضله، و جزى الله خيراً أخانا elgokr ، فقد ساعدني بكود النسخ وحفزني على تطويره، (اسأل الله أن يجمعنا في الجنة إخوانًا على سُرُرٍ مُتقابلين ).[/b][/b]
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.

الرد }}}
تم الشكر بواسطة: elgokr , princelovelorn , ابو روضة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] لدي مشكلة عند قراءة ملف نصي من خلال أداة RichBox , حيث تظهر لي علامات استفهام Mostchar 2 150 07-04-24, 02:51 PM
آخر رد: تركي الحلواني
  [سؤال] أرغب في شريط ضبط الخطوط في أداة RichTextBox والكود كما بالصورة Mostchar 1 128 02-04-24, 01:01 AM
آخر رد: justforit
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 145 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 656 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  استعلام select عن مجموعة بيانات Adel27213 1 214 15-03-24, 01:11 AM
آخر رد: justforit
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 198 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  [VB.NET] تحديث بيانات فى كلاس من جدول سيكوال asdfar1977 6 196 26-02-24, 01:07 AM
آخر رد: asdfar1977
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 239 25-02-24, 11:26 PM
آخر رد: heem1986
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 95 25-02-24, 02:31 PM
آخر رد: h2551996
  [VB.NET] معرفة بيانات الجهاز محمد بوقزاحة 1 328 21-02-24, 11:44 PM
آخر رد: AHMED213

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم