/// <summary> /// 还原数据库 /// </summary> /// <param name="serverName">数据实例名</param> /// <param name="userName">用户</param> /// <param name="password">密码</param> /// <param name="databaseName">库名</param> /// <param name="path">文件路径</param> public static void RestoreDatabase(string serverName, string userName, string password, string databaseName, string path) { SQLDMO.Restore oRestore = new SQLDMO.Restore(); SQLServer oSQLServer = new SQLServer(); try { oSQLServer.LoginSecure = false; oSQLServer.Connect(serverName, userName, password); oRestore.Action = SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; oRestore.Database = databaseName; oRestore.Files = path; oRestore.FileNumber = path.Split(',').Count(); oRestore.BackupSetName = databaseName; oRestore.ReplaceDatabase = true; oRestore.SQLRestore(oSQLServer); } catch { throw; } finally { oSQLServer.DisConnect(); } }
/// <summary> /// 备份数据库 /// </summary> /// <param name="serverName">数据实例名</param> /// <param name="userName">用户</param> /// <param name="password">密码</param> /// <param name="databaseName">库名</param> /// <param name="path">备份路径</param> public static void CompressDatabase(string serverName, string userName, string password, string databaseName, string path) { Backup oBackup = new Backup(); SQLServer oSQLServer = new SQLServer(); try { oSQLServer.LoginSecure = false; oSQLServer.Connect(serverName, userName, password); oBackup.Action = SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; oBackup.Database = databaseName; oBackup.Files = path; oBackup.BackupSetName = databaseName; oBackup.BackupSetDescription = string.Format("{0} {1}", databaseName, DateTime.Now); oBackup.Initialize = true; oBackup.SQLBackup(oSQLServer); } catch { throw; } finally { oSQLServer.DisConnect(); } }
/// <summary> /// 备份数据库 /// </summary> /// <param name="serverName">数据实例名</param> /// <param name="userName">用户</param> /// <param name="password">密码</param> /// <param name="databaseName">库名</param> /// <param name="path">备份路径</param> public static void CompressDatabase(string serverName,string userName,string password,string databaseName,string path) { Backup oBackup = new Backup(); SQLServer oSQLServer = new SQLServer(); try { oSQLServer.LoginSecure = false; oSQLServer.Connect(serverName, userName, password); oBackup.Action = SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; oBackup.Database = databaseName; oBackup.Files = path; oBackup.BackupSetName = databaseName; oBackup.BackupSetDescription = string.Format("{0} {1}", databaseName, DateTime.Now); oBackup.Initialize = true; oBackup.SQLBackup(oSQLServer); } catch { throw; } finally { oSQLServer.DisConnect(); } }
public static void DbBackup(string string_0, string string_1, string string_2, string string_3, string string_4, string string_5, string string_6) { Backup backupClass = new Backup(); SQLServer sQLServerClass = new SQLServer(); try { try { sQLServerClass.LoginSecure = false; sQLServerClass.Connect(string_0.Trim(), string_1.Trim(), string_2.Trim()); backupClass.Action = 0; backupClass.Database = string_3.Trim(); backupClass.Files = string_4; backupClass.BackupSetName = string_5; backupClass.BackupSetDescription = string_6; backupClass.Initialize = true; backupClass.SQLBackup(sQLServerClass); } catch { throw; } } finally { sQLServerClass.DisConnect(); } }
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(); } }
public bool BackUPDB(string string_3, string string_4, System.Windows.Forms.ProgressBar progressBar_1) { this.progressBar_0 = progressBar_1; SQLServer sQLServer = new SQLServer(); Database database = new Database(); bool result; try { sQLServer.Connect(this.ServerName, this.UserName, this.Password); int i = 1; while (i <= sQLServer.Databases.Count) { if (!(sQLServer.Databases.ItemByID(i).Name.Trim() == string_3)) { i++; } else { database = (Database)sQLServer.Databases.ItemByID(i); IL_7B: if (!database.Isdb_owner) { System.Windows.Forms.MessageBox.Show("没有足够的操作权限"); result = false; return(result); } Backup backup = new Backup(); backup.Action = 0; backup.Initialize = true; BackupSink_PercentCompleteEventHandler backupSink_PercentCompleteEventHandler = new BackupSink_PercentCompleteEventHandler(this.Step); backup.PercentComplete += (backupSink_PercentCompleteEventHandler); backup.Files = (string_4); backup.Database = (string_3); backup.SQLBackup(sQLServer); result = true; return(result); } } } catch (System.Exception ex) { throw new System.Exception("备份数据库失败" + ex.Message); } finally { sQLServer.DisConnect(); } return(false); }
private void method_1(string string_0, string string_1, string string_2) { SQLServer sQLServerClass = new SQLServer(); Database databaseClass = new Database(); sQLServerClass.LoginSecure = false; int count = 0; this.SQLSDE.Items.Clear(); try { sQLServerClass.Connect(string_0, string_1, string_2); count = sQLServerClass.Databases.Count; } catch (Exception exception) { COMException cOMException = exception as COMException; if (cOMException.ErrorCode == -2147221504) { MessageBox.Show("服务器没有启动或不存在"); } if (cOMException.ErrorCode == -2147203048) { MessageBox.Show(string.Concat("用户名'", string_1, "'登录失败")); } if (cOMException.ErrorCode == -2147204362) { MessageBox.Show("服务器暂停,不允许进行新的连接"); } return; } try { try { for (int i = 1; i < count + 1; i++) { string name = ""; databaseClass = (Database)sQLServerClass.Databases.ItemByID(i); name = databaseClass.Name; this.SQLSDE.Items.Add(name); } } catch (Exception exception1) { } } finally { sQLServerClass.DisConnect(); } }
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(); }
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); }
protected void btnDBBackup_Click(object sender, EventArgs e) { Backup dbBackup = new Backup(); SQLServer sqlServer = new SQLServer(); sqlServer.LoginSecure = false; sqlServer.Connect(".", "sa", ""); dbBackup.Action = SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; dbBackup.Database = "Yuchen"; dbBackup.Files = @"C:\BackupOfYuchen\BackupOfYuchen.bak";//这些路径不会自己创建,不能有空格 dbBackup.BackupSetName = "BackupOfYuchen"; dbBackup.BackupSetDescription = "备份数据库Yuchen"; dbBackup.Initialize = true; dbBackup.SQLBackup(sqlServer); sqlServer.DisConnect(); Response.Write("<script language=\"javascript\">alert('已经将数据库备份到C:\\\\BackupOfYuchen')</script>"); }
public ArrayList GetDbList(string string_3, string string_4, string string_5) { this.ServerName = string_3; this.UserName = string_4; this.Password = string_5; ArrayList arrayLists = new ArrayList(); SQLDMO.Application applicationClass = new Application(); SQLServer sQLServerClass = new SQLServer(); try { try { sQLServerClass.Connect(this.ServerName, this.UserName, this.Password); foreach (Database databasis in sQLServerClass.Databases) { if (databasis.Name == null) { continue; } arrayLists.Add(databasis.Name); } } catch (Exception exception) { throw new Exception(string.Concat("连接数据库出错:", exception.Message)); } } finally { sQLServerClass.DisConnect(); applicationClass.Quit(); } return(arrayLists); }
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); }
/// <summary> /// 还原数据库 /// </summary> /// <param name="serverName">数据实例名</param> /// <param name="userName">用户</param> /// <param name="password">密码</param> /// <param name="databaseName">库名</param> /// <param name="path">文件路径</param> public static void RestoreDatabase(string serverName, string userName, string password, string databaseName, string path) { SQLDMO.Restore oRestore = new SQLDMO.Restore(); SQLServer oSQLServer = new SQLServer(); try { oSQLServer.LoginSecure = false; oSQLServer.Connect(serverName, userName, password); oRestore.Action = SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; oRestore.Database = databaseName; oRestore.Files = path; oRestore.FileNumber = path.Split(',').Count(); oRestore.BackupSetName = databaseName; oRestore.ReplaceDatabase = true; oRestore.SQLRestore(oSQLServer); } catch { throw; } finally { oSQLServer.DisConnect(); } }
public static bool DbBackupEx(string string_0, string string_1, string string_2, string string_3, string string_4, string string_5, string string_6) { bool flag; bool flag1 = false; Backup backupClass = new Backup(); SQLServer sQLServerClass = new SQLServer(); try { if (!File.Exists(string_4)) { FileStream fileStream = File.Create(string_4); try { } finally { if (fileStream != null) { ((IDisposable)fileStream).Dispose(); } } } } catch (Exception exception) { MessageBox.Show(exception.ToString()); flag = false; return(flag); } if ((string_5 == null ? true : string_5 == "")) { string_5 = string.Concat("你现在进行了数据库", string_3.Trim(), "的备份设置"); } if ((string_6 == null ? true : string_6 == "")) { string_6 = string.Concat("你现在备份的数据库为", string_3.Trim()); } try { try { sQLServerClass.LoginSecure = false; sQLServerClass.Connect(string_0.Trim(), string_1.Trim(), string_2.Trim()); backupClass.Action = 0; backupClass.Database = string_3.Trim(); backupClass.Files = string_4; backupClass.BackupSetName = string_5; backupClass.BackupSetDescription = string_6; backupClass.Initialize = true; backupClass.SQLBackup(sQLServerClass); flag1 = true; } catch (Exception exception1) { MessageBox.Show(exception1.Message.ToString()); } } finally { sQLServerClass.DisConnect(); } flag = flag1; return(flag); }
public static bool GetMachineSQL(string string_0, string string_1, string string_2, string string_3) { bool flag; SQLServer sQLServerClass = new SQLServer(); Database databaseClass = new Database(); bool flag1 = false; bool flag2 = false; sQLServerClass.LoginSecure = false; int count = 0; try { sQLServerClass.Connect(string_0, string_2, string_3); count = sQLServerClass.Databases.Count; } catch (COMException cOMException1) { COMException cOMException = cOMException1; if (cOMException.ErrorCode == -2147221504) { MessageBox.Show("服务器没有启动或不存在"); } if (cOMException.ErrorCode == -2147203048) { MessageBox.Show(string.Concat("用户名'", string_2, "'登录失败")); } if (cOMException.ErrorCode == -2147204362) { MessageBox.Show("服务器暂停,不允许进行新的连接"); } flag = flag2; return(flag); } try { try { int num = 1; while (true) { if (num < count + 1) { string str = ""; databaseClass = (Database)sQLServerClass.Databases.ItemByID(num); str = databaseClass.Name.Trim(); if (string_1.Trim().ToUpper() == str.ToUpper()) { flag1 = true; break; } else { num++; } } else { break; } } if (!flag1) { MessageBox.Show("目标服务器上不存在该数据库"); } } catch (Exception exception) { MessageBox.Show(exception.Message.ToString()); } } finally { sQLServerClass.DisConnect(); } flag = flag2; return(flag); }