Exemplo n.º 1
0
        public static void DbRestore(string string_0, string string_1, string string_2, string string_3, string string_4)
        {
            Restore   restoreClass   = new Restore();
            SQLServer sQLServerClass = new SQLServer();

            try
            {
                try
                {
                    sQLServerClass.LoginSecure = false;
                    sQLServerClass.Connect(string_0.Trim(), string_1.Trim(), string_2.Trim());
                    restoreClass.Action          = 0;
                    restoreClass.Database        = string_3.Trim();
                    restoreClass.Files           = string_4;
                    restoreClass.FileNumber      = 1;
                    restoreClass.ReplaceDatabase = true;
                    restoreClass.SQLRestore(sQLServerClass);
                }
                catch
                {
                    throw;
                }
            }
            finally
            {
                sQLServerClass.DisConnect();
            }
        }
Exemplo n.º 2
0
    protected void btnDBRecovery_Click(object sender, EventArgs e)
    {
        Restore   dbRestore = new Restore();
        SQLServer sqlServer = new SQLServer();

        sqlServer.LoginSecure = false;
        sqlServer.Connect(".", "sa", "");
        dbRestore.Action          = SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
        dbRestore.Database        = "Yuchen";
        dbRestore.Files           = @"C:\BackupOfYuchen\BackupOfYuchen.bak";//和上面的路径保持一致
        dbRestore.FileNumber      = 1;
        dbRestore.ReplaceDatabase = true;
        dbRestore.SQLRestore(sqlServer);

        sqlServer.DisConnect();
    }
Exemplo n.º 3
0
        public static bool DbRestoreEx(string string_0, string string_1, string string_2, string string_3,
                                       string string_4)
        {
            bool      flag           = false;
            string    columnString   = "";
            Restore   restoreClass   = new Restore();
            SQLServer sQLServerClass = new SQLServer();

            try
            {
                try
                {
                    sQLServerClass.LoginSecure = false;
                    sQLServerClass.Connect(string_0.Trim(), string_1.Trim(), string_2.Trim());
                    restoreClass.Action     = 0;
                    restoreClass.Database   = string_3.Trim();
                    restoreClass.Files      = string_4;
                    restoreClass.FileNumber = 1;


                    columnString = restoreClass.ReadFileList(sQLServerClass).GetColumnString(1, 2);
                    columnString = columnString.Substring(0, columnString.LastIndexOf('\\'));
                    if (!Directory.Exists(columnString))
                    {
                        Directory.CreateDirectory(columnString);
                    }
                    restoreClass.ReplaceDatabase = true;
                    restoreClass.SQLRestore(sQLServerClass);
                    flag = true;
                }
                catch (Exception exception)
                {
                    exception.ToString();
                    MessageBox.Show("请删除与要恢复的数据库同名的数据文件");
                }
            }
            finally
            {
                sQLServerClass.DisConnect();
            }
            return(flag);
        }
Exemplo n.º 4
0
        public bool RestoreDB(string string_3, string string_4, string string_5, ProgressBar progressBar_1)
        {
            int  i;
            bool flag;

            this.progressBar_0 = progressBar_1;
            string    columnString   = "";
            string    str            = "";
            string    str1           = "";
            string    str2           = "";
            SQLServer sQLServerClass = new SQLServer();

            try
            {
                try
                {
                    sQLServerClass.Connect(this.ServerName, this.UserName, this.Password);
                    QueryResults queryResult = sQLServerClass.EnumProcesses(-1);
                    int          num         = -1;
                    int          num1        = -1;
                    for (i = 1; i <= queryResult.Columns; i++)
                    {
                        string columnName = queryResult.ColumnName[i];
                        if (columnName.ToUpper().Trim() == "SPID")
                        {
                            num = i;
                        }
                        else if (columnName.ToUpper().Trim() == "DBNAME")
                        {
                            num1 = i;
                        }
                        if ((num == -1 ? false : num1 != -1))
                        {
                            break;
                        }
                    }
                    for (i = 1; i <= queryResult.Rows; i++)
                    {
                        int columnLong = queryResult.GetColumnLong(i, num);
                        if (queryResult.GetColumnString(i, num1).ToUpper() == string_3.ToUpper())
                        {
                            sQLServerClass.KillProcess(columnLong);
                        }
                    }
                    Restore restoreClass = new Restore()
                    {
                        Action = SQLDMO_RESTORE_TYPE.SQLDMORestore_Database
                    };
                    restoreClass.PercentComplete += new RestoreSink_PercentCompleteEventHandler(this.Step);
                    restoreClass.Files            = string_4;
                    restoreClass.Database         = string_3;
                    restoreClass.RelocateFiles    = "[SuperOA],[D:\\aaaa.mdf]";
                    columnString = restoreClass.ReadFileList(sQLServerClass).GetColumnString(1, 1);
                    str          = restoreClass.ReadFileList(sQLServerClass).GetColumnString(2, 1);
                    str1         = string.Concat(string_5, columnString, ".mdf");
                    str2         = string.Concat(string_5, str, ".ldf");
                    string[] strArrays = new string[] { "[", columnString, "],[", str1, "],[", str, "],[", str2, "]" };
                    restoreClass.RelocateFiles   = string.Concat(strArrays);
                    restoreClass.ReplaceDatabase = true;
                    restoreClass.SQLRestore(sQLServerClass);
                    flag = true;
                }
                catch (Exception exception)
                {
                    exception.Message.ToString();
                    MessageBox.Show("恢复数据库失败,请关闭所有和该数据库连接的程序!");
                    flag = false;
                }
            }
            finally
            {
                sQLServerClass.DisConnect();
            }
            return(flag);
        }