在C#编程中,如何实现数据库的还原与备份???知道的帮助下。谢谢!!!!

解决方案 »

  1.   

    SQL语句是通用的,/*
    Author:Terry.Sai.M.J 备份 
    Location:BeiJing
    DateTime:GETDATE()
    Description:使用镜像备份
    */IF DB_ID('db') IS NOT NULL
        DROP DATABASE db;
    GOCREATE DATABASE db;
    GOCREATE TABLE db.dbo.T(ID INT);INSERT INTO db.dbo.T SELECT 1;BACKUP DATABASE db TO DISK='c:\1.bak' MIRROR TO DISK='c:\2.bak'
    WITH FORMAT,MEDIANAME='MydbMedia';RESTORE DATABASE db FROM DISK='c:\2.bak' WITH RECOVERY,REPLACESELECT COUNT(*) FROM db.dbo.TRESTORE DATABASE db FROM DISK='c:\1.bak' WITH RECOVERY,REPLACESELECT COUNT(*) FROM db.dbo.TDROP DATABASE db;
    GO
      

  2.   

    C#也只是把写好的SQL语句,丢给数据库执行阿~~C#本身不具备直接备份数据库的功能
      

  3.   

    1、用C#调用SQL语句,上面的都说了。2、使用SQLDMO,添加 "Microsoft SQLDMO Object Library" COM 引用。这是.net封装的操作数据库的类。这种方式更面向对象。/// <summary>
            /// 备份数据库
            /// </summary>
            /// <param name="dbName"></param>
            /// <param name="bakFile"></param>
            /// <param name="bakSetName"></param>
            /// <param name="bakDescription"></param>
            /// <example>
            /// <code>
            /// SqlDmoHelper dmo = new SqlDmoHelper("(local)", "sa", "sa");
            /// dmo.BackupDB("test", @"d:\temp\database\test.bak", "手动备份1", "备份说明...");
            /// </code>
            /// </example>
            public void BackupDB(string dbName, string bakFile, string bakSetName, string bakDescription)
            {
                Backup oBackup = new BackupClass();
                oBackup.Action = SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                oBackup.Database = dbName;
                oBackup.Files = bakFile;
                oBackup.BackupSetName = bakSetName;
                oBackup.BackupSetDescription = bakDescription;
                oBackup.Initialize = true;
                oBackup.SQLBackup(sqlServer);
            }