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



كود لضغط قاعدة البيانات - MOHAMMED ALZWI - 11-12-22

السلام عليكم 

اخوتي الاعضاء الكرام
 اريد  اجراء ضغط قاعدة البيانات بعد اخذ النسخة الاحتياطية 
والكود المستخدم في النسخ كالاتي:_
====================================================================
    Dim dt As String
        dt = Format(Now, "dd-MM-yyyy____hh-mm-ss-tt")
        Dim sfd As New SaveFileDialog
        sfd.Filter = "SQL Backup File |*.bak"
        sfd.Title = "نسخ قاعدة البيانات"
        If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim con As SqlClient.SqlConnection = New SqlConnection("Data Source=Mohammed\SQL_2019_KF;Initial Catalog=DB_SALE;USER ID=sa; Password=123456")
            Dim backupcmd As New SqlCommand()
            With backupcmd
                .Connection = con
                .CommandText = " use master BACKUP DATABASE [DB_SALE] TO  DISK = N'" & sfd.FileName & "' WITH NOFORMAT, INIT,  " _
                             & " Name = N'DataBaseName-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10"
                Try
                    If con.State = ConnectionState.Closed Then con.Open()
                    Me.Cursor = Cursors.WaitCursor
                    .ExecuteNonQuery()
                    Me.Cursor = Cursors.Default
                    MessageBox.Show("تم انشاء نسخه احتياطية من قاعدة البيانات ", "")
                Catch ex As Exception
                    Me.Cursor = Cursors.Default
                    If con.State = ConnectionState.Open Then con.Close()
                    MsgBox(ex.Message, MsgBoxStyle.Critical)
                End Try
            End With
        Else
            Exit Sub
        End If
============================================================================
ارجو المساعدة حتى بفكره


RE: كود لضغط قاعدة البيانات - محمد فوزى محمد - 20-02-23

تاكد ان Windows.base موجودة فى Referance

Imports System.IO

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim SFD As New SaveFileDialog

Try

With SFD
.Filter = "Bacup file |*.bak*"
.FileName = "d:\data_back_up\" & Format(Now, "yyyy_MM_dd_hh_mm_ss")
End With
If SFD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
SS = SFD.FileName & ".bak"
Dim sql As String = "backup database my_store to disk = '" & (SS) & " '"
Dim cmd As New SqlCommand(sql, DB)
cmd.ExecuteNonQuery()

End If

'-------------------الضغط-------------------------------
Dim Z As System.IO.Packaging.ZipPackage
Z = System.IO.Packaging.Package.Open(SS & ".zip", IO.FileMode.Create)
Dim B = System.IO.File.ReadAllBytes(SS)
Dim Partx As Uri = System.IO.Packaging.PackUriHelper.CreatePartUri(New Uri(System.IO.Path.GetFileName(SS), UriKind.Relative))
Dim P = Z.CreatePart(Partx, System.Net.Mime.MediaTypeNames.Application.Zip, IO.Packaging.CompressionOption.Maximum)
P.GetStream.Write(B, 0, B.Length)
Z.Close()
Dim fileToDelete As String = SS
If File.Exists(fileToDelete) = True Then
File.Delete(fileToDelete)
End If
Alert("تمت عملية النسخ الاحتياطى بنجاح", Form_Alert.enmType.Success)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub