المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
28-02-25, 01:11 AM
(آخر تعديل لهذه المشاركة : 28-02-25, 01:12 AM {2} بواسطة مصمم هاوي.)
هذا مثال صغير لنسخ واسترجاع قواعد بيانات sql ويشتغل 100%
المطلوب:
تعديل مكان حفظ النسخة الاحتياطية بدلا من القرص © إلى مجلد البرنامــج --- (Debug) ..... (BackupFolder)
واسترجاعها من نفس المجلد
DatabseManager.rar (الحجم : 164.71 ك ب / التحميلات : 29)
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
هل من إجابة
أريد تغيير مكان حفظ النسخة الاحتياطية فقط من قرص السي إلى مجلد موجود في مجلد الديباق
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 80
المواضيع 0
الإنتساب : Jun 2024
السمعة :
35
الشكر: 371
تم شكره 206 مرات في 131 مشاركات
PHP كود :
Imports System.IO Imports System.Data.SqlClient
Public Class Form_DatabseManager
Dim SqlConnection1 As New SqlClient.SqlConnection("Data Source=" & My.Computer.Name & ";Initial Catalog=tempdb;Integrated Security=SSPI;")
Dim p = Application.StartupPath & "\BackupFolder\"
Dim f1 As String Dim f2 As String Dim MYDBNAME As String Dim dt As String
Private Sub Form_DatabseManager_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load ' ضبط مكان الفورم Me.StartPosition = FormStartPosition.WindowsDefaultLocation Me.TopMost = True Me.Top = 50 ' تكبر القيمة ستنزل Me.Height = 390 Me.Width = 749
Fill_Combdatabases()
End Sub
Private Sub Fill_Combdatabases() Dim DS As New DataSet Dim str As String = "Select DISTINCT name from master.dbo.sysdatabases where name not IN('master','msdb','tempdb' ,'model') and has_dbaccess(Name) = 1 order by name " Dim ADP As SqlClient.SqlDataAdapter ADP = New SqlClient.SqlDataAdapter(str, SqlConnection1) DS.Clear() ADP.Fill(DS)
Me.ComboBox1.Items.Clear() Me.ComboBox2.Items.Clear()
Dim i As Integer For i = 0 To DS.Tables(0).Rows.Count - 1 Me.ComboBox1.Items.Add(DS.Tables(0).Rows(i).Item(0)) Me.ComboBox2.Items.Add(DS.Tables(0).Rows(i).Item(0)) Next ADP.Dispose() End Sub
Private Sub ButBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButBackup.Click Me.Cursor = Cursors.WaitCursor Try Dim CMD As New SqlCommand("backup database " & Me.ComboBox1.Text.Trim & " to disk=@PATHFILE with init", SqlConnection1) CMD.Parameters.AddWithValue("@PATHFILE", Me.TextDirectory1.Text) SqlConnection1.Open() CMD.ExecuteNonQuery() MessageBox.Show("تم إنشاء نسخـه احتياطية من قاعــدة البيانات الحالية" & " فى المسار التالى " & vbCrLf & vbCrLf & Me.TextDirectory1.Text.Trim, "انشاء نسخه احتياطيه", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly) Catch ex As Exception MessageBox.Show("عفـواً ... فشل إنشاء نسخـه احتياطيـة ", "إنشاء نسخـه احتياطيه", MessageBoxButtons.OK, MessageBoxIcon.Information) Finally SqlConnection1.Close() End Try Me.ComboBox1.Text = "" Me.TextDirectory1.Text = "" Me.Cursor = Cursors.Default End Sub
Private Sub ButDirectory1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButDirectory1.Click If Me.ComboBox1.SelectedIndex = -1 Then MessageBox.Show("من فضلك حدد قاعـدة البيانات ", "الرجـاء ... تحديد قاعــدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) Me.ComboBox1.Focus() Exit Sub End If If Directory.Exists(p) = False Then Directory.CreateDirectory(p) Me.TextDirectory1.Text = p & Me.ComboBox1.Text.Trim & Format(Now, "dd-MM-yyyy-hh-mm-tt") & ".dmp" End Sub
Private Sub ButDirectory2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButDirectory2.Click Dim dlgCommonDialog1 As New OpenFileDialog dlgCommonDialog1.InitialDirectory = p dlgCommonDialog1.Title = "الرجـاء ... تحديد موقـع النسخـة الاحتياطيـة" dlgCommonDialog1.Filter = "SQL DATABASE FILES BACKUP (*.dmp)|*.dmp|All Files(*.*)|*.*" If dlgCommonDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then Me.TextDirectory2.Text = dlgCommonDialog1.FileName End If End Sub
Private Sub ButRestor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButRestor.Click If Len(Me.ComboBox2.Text) = 0 Then MessageBox.Show("من فضلك حدد قاعـدة البيانات ", "الرجـاء ... تحديد قاعـدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading) Me.ComboBox2.Focus() Exit Sub End If Me.Cursor = Cursors.WaitCursor Try Dim CMD As New SqlCommand("restore database " & Me.ComboBox2.Text.Trim & " from disk =@PATHFILE ", SqlConnection1) SqlConnection1.Open() CMD.Parameters.AddWithValue("@PATHFILE", Me.TextDirectory2.Text) CMD.ExecuteNonQuery() MessageBox.Show("تم استرجاع البيانات من النسخـة الاحتياطيـة بنجــاح", "استرجاع البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) Catch ex As Exception MessageBox.Show("عفـواً ... فشل استرجاع البيانات من النسخـة الاحتياطيـة", "استرجاع البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) Finally SqlConnection1.Close() End Try Me.ComboBox2.Text = "" Me.TextDirectory2.Text = "" Me.Cursor = Cursors.Default End Sub
Private Sub TEXT3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextDirectory1.TextChanged Me.ButBackup.Enabled = Me.TextDirectory1.TextLength > 0 AndAlso Len(Me.ComboBox1.Text) > 0 End Sub
Private Sub TEXT4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextDirectory2.TextChanged Me.ButRestor.Enabled = Me.TextDirectory2.TextLength > 0 AndAlso Len(Me.ComboBox2.Text) > 0 End Sub
Private Sub ButExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButExit.Click Me.Close() End Sub
End Class
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
(01-03-25, 01:49 AM)Zuhare كتب : PHP كود :
Imports System.IO Imports System.Data.SqlClient
Public Class Form_DatabseManager
Dim SqlConnection1 As New SqlClient.SqlConnection("Data Source=" & My.Computer.Name & ";Initial Catalog=tempdb;Integrated Security=SSPI;")
Dim p = Application.StartupPath & "\BackupFolder\"
Dim f1 As String Dim f2 As String Dim MYDBNAME As String Dim dt As String
Private Sub Form_DatabseManager_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load ' ضبط مكان الفورم Me.StartPosition = FormStartPosition.WindowsDefaultLocation Me.TopMost = True Me.Top = 50 ' تكبر القيمة ستنزل Me.Height = 390 Me.Width = 749
Fill_Combdatabases()
End Sub
Private Sub Fill_Combdatabases() Dim DS As New DataSet Dim str As String = "Select DISTINCT name from master.dbo.sysdatabases where name not IN('master','msdb','tempdb' ,'model') and has_dbaccess(Name) = 1 order by name " Dim ADP As SqlClient.SqlDataAdapter ADP = New SqlClient.SqlDataAdapter(str, SqlConnection1) DS.Clear() ADP.Fill(DS)
Me.ComboBox1.Items.Clear() Me.ComboBox2.Items.Clear()
Dim i As Integer For i = 0 To DS.Tables(0).Rows.Count - 1 Me.ComboBox1.Items.Add(DS.Tables(0).Rows(i).Item(0)) Me.ComboBox2.Items.Add(DS.Tables(0).Rows(i).Item(0)) Next ADP.Dispose() End Sub
Private Sub ButBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButBackup.Click Me.Cursor = Cursors.WaitCursor Try Dim CMD As New SqlCommand("backup database " & Me.ComboBox1.Text.Trim & " to disk=@PATHFILE with init", SqlConnection1) CMD.Parameters.AddWithValue("@PATHFILE", Me.TextDirectory1.Text) SqlConnection1.Open() CMD.ExecuteNonQuery() MessageBox.Show("تم إنشاء نسخـه احتياطية من قاعــدة البيانات الحالية" & " فى المسار التالى " & vbCrLf & vbCrLf & Me.TextDirectory1.Text.Trim, "انشاء نسخه احتياطيه", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly) Catch ex As Exception MessageBox.Show("عفـواً ... فشل إنشاء نسخـه احتياطيـة ", "إنشاء نسخـه احتياطيه", MessageBoxButtons.OK, MessageBoxIcon.Information) Finally SqlConnection1.Close() End Try Me.ComboBox1.Text = "" Me.TextDirectory1.Text = "" Me.Cursor = Cursors.Default End Sub
Private Sub ButDirectory1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButDirectory1.Click If Me.ComboBox1.SelectedIndex = -1 Then MessageBox.Show("من فضلك حدد قاعـدة البيانات ", "الرجـاء ... تحديد قاعــدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) Me.ComboBox1.Focus() Exit Sub End If If Directory.Exists(p) = False Then Directory.CreateDirectory(p) Me.TextDirectory1.Text = p & Me.ComboBox1.Text.Trim & Format(Now, "dd-MM-yyyy-hh-mm-tt") & ".dmp" End Sub
Private Sub ButDirectory2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButDirectory2.Click Dim dlgCommonDialog1 As New OpenFileDialog dlgCommonDialog1.InitialDirectory = p dlgCommonDialog1.Title = "الرجـاء ... تحديد موقـع النسخـة الاحتياطيـة" dlgCommonDialog1.Filter = "SQL DATABASE FILES BACKUP (*.dmp)|*.dmp|All Files(*.*)|*.*" If dlgCommonDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then Me.TextDirectory2.Text = dlgCommonDialog1.FileName End If End Sub
Private Sub ButRestor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButRestor.Click If Len(Me.ComboBox2.Text) = 0 Then MessageBox.Show("من فضلك حدد قاعـدة البيانات ", "الرجـاء ... تحديد قاعـدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading) Me.ComboBox2.Focus() Exit Sub End If Me.Cursor = Cursors.WaitCursor Try Dim CMD As New SqlCommand("restore database " & Me.ComboBox2.Text.Trim & " from disk =@PATHFILE ", SqlConnection1) SqlConnection1.Open() CMD.Parameters.AddWithValue("@PATHFILE", Me.TextDirectory2.Text) CMD.ExecuteNonQuery() MessageBox.Show("تم استرجاع البيانات من النسخـة الاحتياطيـة بنجــاح", "استرجاع البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) Catch ex As Exception MessageBox.Show("عفـواً ... فشل استرجاع البيانات من النسخـة الاحتياطيـة", "استرجاع البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) Finally SqlConnection1.Close() End Try Me.ComboBox2.Text = "" Me.TextDirectory2.Text = "" Me.Cursor = Cursors.Default End Sub
Private Sub TEXT3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextDirectory1.TextChanged Me.ButBackup.Enabled = Me.TextDirectory1.TextLength > 0 AndAlso Len(Me.ComboBox1.Text) > 0 End Sub
Private Sub TEXT4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextDirectory2.TextChanged Me.ButRestor.Enabled = Me.TextDirectory2.TextLength > 0 AndAlso Len(Me.ComboBox2.Text) > 0 End Sub
Private Sub ButExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButExit.Click Me.Close() End Sub
End Class
هذا هـــو ما أريدهُ بالضبط
أسالُ اللهَ العظيمَ في هذا الشهرِ المباركِ أن يمنَّ عليك بالصحـةِ والعافيـةِ
وأن يرزقكَ من خيري الدنيا والآخـرة
وأن يغفرَ لكَ في هـذا الشهرِ المبارك، ويُدخلك من أبواب الجنان، ويُبعدك عنك حــرّ النارِ والزمهريـر
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 1,245
المواضيع 215
الإنتساب : Sep 2013
السمعة :
2
الشكر: 3
تم شكره 510 مرات في 303 مشاركات
لي رجاء واتمني تحقيقهبحق الشهر الكريم
اريد فورمة الشاة الافتتاحية التي نختار فيها اسم السرفر
ثم نحدد الصلاحية
ثم يعرض القواعد المتاحة ثم نختار منها القاعدة المطلوبة ويمكن عمل اختيارات حفظ كل هذا لسرعة الدخول وفي حالة عدم وجود القاعدة يتم انشاؤها
ومنها نستفيد بالمشروع الوارد بالمشاركة في كيفية الحفظ وعمل نسخ احتياطي
المشاركات : 897
المواضيع 167
الإنتساب : May 2015
السمعة :
78
الشكر: 791
تم شكره 1504 مرات في 709 مشاركات
(02-03-25, 02:44 AM)atefkhalf2004 كتب : لي رجاء واتمني تحقيقهبحق الشهر الكريم
اريد فورمة الشاة الافتتاحية التي نختار فيها اسم السرفر
ثم نحدد الصلاحية
ثم يعرض القواعد المتاحة ثم نختار منها القاعدة المطلوبة ويمكن عمل اختيارات حفظ كل هذا لسرعة الدخول وفي حالة عدم وجود القاعدة يتم انشاؤها
ومنها نستفيد بالمشروع الوارد بالمشاركة في كيفية الحفظ وعمل نسخ احتياطي
اطلع على هذا الموضوع قد ينفعك فيما تريد
http://vb4arb.com/vb/showthread.php?tid=30862&page=4
وعندي مثال صغير لما طلبت ربما أجده عندي في الجهاز
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
المشاركات : 1,245
المواضيع 215
الإنتساب : Sep 2013
السمعة :
2
الشكر: 3
تم شكره 510 مرات في 303 مشاركات
لي مشاركة وطلبت رفع المثال ولم يتم
اخي
برجاء
رفع حتي علي الخاص
فورمة السرفر
فورمة النسخ الاحتياطي
ولك جزيل الشكر
للاسف انا من الاشخاص من يجد صعوبة في التنفيذ
لذا طلبت هذا
شكرا
اتمني تلبية طلبي
atefkhalf2004@gmail.com
egypt
|