Thứ ba, ngày 21 tháng 11 năm 2017

Form Backup Databases - Xây dựng Form backup dữ liệu

Ngày đăng: 26/3/2011, 1:58:13PM | Lượt xem: 4,404
Hot!

Trong bài viết này tôi sẽ minh họa cho các bạn cách để xây dựng Form backup cơ sở dữ liệu qua trình duyệt. Nghĩa là ta sẽ nhập tên File cần backup và nhấn nút Backup (Sao lưu dữ liệu) khi đó dữ liệu của bạn sẽ được Backup vào một thư mục được chỉ định.

Thông thường bạn muốn Backup dữ liệu bạn thường vào cơ sở dữ liệu và chọn chức năng Tasks/Back up... Để tiến hành backup dữ liệu, Điều này bạn có thể làm dễ dàng khi bạn đang làm việc với màn hình của Database server hoặc bạn Remode vào Database server vậy nên có khi yêu cầu đòi hỏi bạn backup dữ liệu qua Form trên trình duyệt.

hmweb.com.vn - Form backup Database
Kết quả minh họa của Form

 Ở bài viết này tôi sử dụng luôn Class của Website tin tức để sử dụng hàm thực thi câu lệnh SQL. Bạn có thể tham khảo hàm đó trong các bài viết về xây dựng Website tin tức.

Trong trang aspx tôi tạo 2 Panel. 1 để hiển thị danh sách các File.bak đã backup, cái còn lại là Form nhập thông tin và nút lệnh "Sao lưu dữ liệu". Code được viết như sau:

<asp:Panel ID="Panel1" runat="server" 
    GroupingText="Danh sách các File dữ liệu đã backup" 
     Width="400px" ScrollBars="Auto">
        <asp:TreeView ID="trvFileBackup" runat="server" ImageSet="Events">
            <ParentNodeStyle Font-Bold="False" />
            <HoverNodeStyle Font-Underline="False" ForeColor="Red" />
            <SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px" VerticalPadding="0px" />
            <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
                NodeSpacing="0px" VerticalPadding="0px" />
        </asp:TreeView>
</asp:Panel>
<asp:Panel ID="Panel2" runat="server" 
    Width="400px" Height="200px" GroupingText="Thực hiện Backup">
    <table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
        <tr>
            <td style="height:100px" valign="top">
    <asp:Label ID="Label3" runat="server" Text="Tên Files:"></asp:Label>
    <asp:TextBox ID="txtTenFile" runat="server" Width="200px"></asp:TextBox></td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnBackup" runat="server" Text="Sao Lưu dữ liệu" OnClick="btnBackup_Click" />
            </td>
        </tr>
    </table>
</asp:Panel>

 Trong code này danh sách các file được hiển thị trong một asp:TreeView. Tôi sử dụng Treview vì có thể áp dụng cho bài viết sau khi ta thực hiện chức năng Restore Database từ Form.

Giờ trong code behind ta sẽ viết code cho các sự kiện và các hàm hiển thị dữ liệu như sau:

1. Viết Sự kiện Click của Button Sao lưu dữ liệu

Hàm này sẽ lưu các file vào thư mục Backups của ứng dụng. Bạn có thể tạo đường dẫn khác nếu bạn muốn.

protected void btnBackup_Click(object sender, EventArgs e)
{
    hmweb.Services.cCategory mData = new hmweb.Services.cCategory();
    string TenFile = txtTenFile.Text;
    if (TenFile == "")
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Bạn chưa nhập Tên File Sao Lưu');", true);
        
        return;
    }
    if (TenFile.Length > 3)
    {
        if (TenFile.Substring(TenFile.Length - 4, 4) != ".bak")
        {
            TenFile += ".bak";
        }
    }
    string strDuongDan = Server.MapPath("~/Backups/") + TenFile;
    try
    {
        mData.ThucThiLenhSQL("BACKUP DATABASE DB_News TO DISK = '" + strDuongDan + "'");
        ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Đã backup Database');", true);
        DanhSachFileDaBackup();
    }
    catch
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "alert('Lỗi: " + mData.ErrorMessage + "');", true);
    }
}

2. Viết hàm liệt kê danh sách các file.bak trong thư mục Backups của ứng dụng

private void DanhSachFileDaBackup()
{
    string[] lstFile = Directory.GetFiles(Server.MapPath("~/Backups/"), "*.bak");
    trvFileBackup.Nodes.Clear();
    foreach (string FileName in lstFile)
    {
        FileInfo fInfo = new FileInfo(FileName);
        TreeNode trNood = new TreeNode(fInfo.Name, fInfo.Name);
        trvFileBackup.Nodes.Add(trNood);
    }
}

 3, Hàm Page_Load:

protected void Page_Load(object sender, EventArgs e)
{
    DanhSachFileDaBackup();
    txtTenFile.Text = "DB_News_" + DateTime.Now.ToString("ddMMyyyy") + ".bak";
}

Trong bài viết sau tôi sẽ minh họa cho các bạn cách viết Form để thực hiện Restore Database được chọn từ sanh sách các File đã backup

Các ý kiến thảo luận về chủ đề này bạn có thể tham gia tại diễn đàn Backup cơ sở dữ liệu qua Form

http://hmweb.com.vn Chúc bạn thành công

PS: Đây là 1 câu hỏi của 1 bạn trong diễn đàn aspvn.net, Tôi thấy câu hỏi này cũng khá hay và có thể nhiều bạn cần nó nên đã hướng dẫn, hy vọng giúp ích được các bạn

hmweb
 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
ca do bong da online
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.