منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كود لضغط قاعدة البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

اخوتي الاعضاء الكرام
 اريد  اجراء ضغط قاعدة البيانات بعد اخذ النسخة الاحتياطية 
والكود المستخدم في النسخ كالاتي:_
====================================================================
    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
============================================================================
ارجو المساعدة حتى بفكره
تاكد ان 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