zoukankan      html  css  js  c++  java
  • c# 通过配置自动附加数据库

    using System; 
    using System.Collections.Generic; 
    using System.Windows.Forms; 
    using System.Data.SqlClient; 
    using System.Data; 
    using System.ServiceProcess; 
    
    namespace AdminZJC.DataBaseControl 
    { 
     /// <summary> 
     /// 数据库操作控制类 
     /// </summary> 
     public class DataBaseControl 
     { 
     /// <summary> 
     /// 数据库连接字符串 
     /// </summary> 
     public string ConnectionString; 
    
     /// <summary> 
     /// SQL操作语句/存储过程 
     /// </summary> 
     public string StrSQL; 
    
     /// <summary> 
     /// 实例化一个数据库连接对象 
     /// </summary> 
     private SqlConnection Conn; 
    
     /// <summary> 
     /// 实例化一个新的数据库操作对象Comm 
     /// </summary> 
     private SqlCommand Comm; 
    
     /// <summary> 
     /// 要操作的数据库名称 
     /// </summary> 
     public string DataBaseName; 
    
     /// <summary> 
     /// 数据库文件完整地址 
     /// </summary> 
     public string DataBase_MDF; 
    
     /// <summary> 
     /// 数据库日志文件完整地址 
     /// </summary> 
     public string DataBase_LDF; 
    
     /// <summary> 
     /// 备份文件名 
     /// </summary> 
     public string DataBaseOfBackupName; 
    
     /// <summary> 
     /// 备份文件路径 
     /// </summary> 
     public string DataBaseOfBackupPath; 
    
     /// <summary> 
     /// 执行创建/修改数据库和表的操作 
     /// </summary> 
     public void DataBaseAndTableControl() 
     { 
     try 
     { 
     Conn = new SqlConnection(ConnectionString); 
     Conn.Open(); 
    
     Comm = new SqlCommand(); 
     Comm.Connection = Conn; 
     Comm.CommandText = StrSQL; 
     Comm.CommandType = CommandType.Text; 
     Comm.ExecuteNonQuery(); 
    
     MessageBox.Show("数据库操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     catch (Exception ex) 
     { 
     MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     finally 
     { 
     Conn.Close(); 
     } 
     } 
    
     /// <summary> 
     /// 附加数据库 
     /// </summary> 
     public void AddDataBase() 
     { 
     try 
     { 
     Conn = new SqlConnection(ConnectionString); 
     Conn.Open(); 
    
     Comm = new SqlCommand(); 
     Comm.Connection = Conn; 
     Comm.CommandText = "sp_attach_db"; 
    
     Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar)); 
     Comm.Parameters[@"dbname"].Value = DataBaseName; 
     Comm.Parameters.Add(new SqlParameter(@"filename1", SqlDbType.NVarChar)); 
     Comm.Parameters[@"filename1"].Value = DataBase_MDF; 
     Comm.Parameters.Add(new SqlParameter(@"filename2", SqlDbType.NVarChar)); 
     Comm.Parameters[@"filename2"].Value = DataBase_LDF; 
    
     Comm.CommandType = CommandType.StoredProcedure; 
     Comm.ExecuteNonQuery(); 
    
     MessageBox.Show("附加数据库成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     catch (Exception ex) 
     { 
     MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     finally 
     { 
     Conn.Close(); 
     } 
     } 
    
     /// <summary> 
     /// 分离数据库 
     /// </summary> 
     public void DeleteDataBase() 
     { 
     try 
     { 
     Conn = new SqlConnection(ConnectionString); 
     Conn.Open(); 
    
     Comm = new SqlCommand(); 
     Comm.Connection = Conn; 
     Comm.CommandText = @"sp_detach_db"; 
    
     Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar)); 
    Comm.Parameters[@"dbname"].Value = DataBaseName; 
    
     Comm.CommandType = CommandType.StoredProcedure; 
     Comm.ExecuteNonQuery(); 
    
     MessageBox.Show("分离数据库成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     catch (Exception ex) 
     { 
     MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     finally 
     { 
     Conn.Close(); 
     } 
     } 
    
     /// <summary> 
     /// 备份数据库 
     /// </summary> 
     public void BackupDataBase() 
     { 
     try 
     { 
     Conn = new SqlConnection(ConnectionString); 
     Conn.Open(); 
    
     Comm = new SqlCommand(); 
     Comm.Connection = Conn; 
     Comm.CommandText = "use master;backup database @dbname to disk = @backupname;"; 
    
     Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar)); 
     Comm.Parameters[@"dbname"].Value = DataBaseName; 
     Comm.Parameters.Add(new SqlParameter(@"backupname", SqlDbType.NVarChar)); 
     Comm.Parameters[@"backupname"].Value = @DataBaseOfBackupPath + @DataBaseOfBackupName; 
    
     Comm.CommandType = CommandType.Text; 
     Comm.ExecuteNonQuery(); 
    
     MessageBox.Show("备份数据库成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     catch (Exception ex) 
     { 
     MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     finally 
     { 
     Conn.Close(); 
     } 
     } 
    
     /// <summary> 
     /// 还原数据库 
     /// </summary> 
     public void ReplaceDataBase() 
     { 
     try 
     { 
     string BackupFile = @DataBaseOfBackupPath + @DataBaseOfBackupName; 
     Conn = new SqlConnection(ConnectionString); 
     Conn.Open(); 
    
     Comm = new SqlCommand(); 
     Comm.Connection = Conn; 
     Comm.CommandText = "use master;restore database @DataBaseName From disk = @BackupFile with replace;"; 
    
     Comm.Parameters.Add(new SqlParameter(@"DataBaseName", SqlDbType.NVarChar)); 
     Comm.Parameters[@"DataBaseName"].Value = DataBaseName; 
     Comm.Parameters.Add(new SqlParameter(@"BackupFile", SqlDbType.NVarChar)); 
     Comm.Parameters[@"BackupFile"].Value = BackupFile; 
    
     Comm.CommandType = CommandType.Text; 
     Comm.ExecuteNonQuery(); 
    
     MessageBox.Show("还原数据库成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     catch (Exception ex) 
     { 
     MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     finally 
     { 
     Conn.Close(); 
     } 
     } 
     } 
    } 
    
    /* 
     ///调用事例: 
      
        还原数据库 
     private void button0_Click(object sender, EventArgs e) 
     { 
     DataBaseControl DBC = new DataBaseControl(); 
     DBC.ConnectionString = "Data Source=(local);User id=sa;Password=123456; Initial Catalog=master"; 
     DBC.DataBaseName = "MyDatabase"; 
     DBC.DataBaseOfBackupName = @"back.bak"; 
     DBC.DataBaseOfBackupPath = @"D:Program FilesMicrosoft SQL ServerMSSQLData"; 
     DBC.ReplaceDataBase(); 
     } 
      
        附加数据库 
     private void button1_Click_1(object sender, EventArgs e) 
     { 
     DataBaseControl DBC = new DataBaseControl(); 
     DBC.ConnectionString = "Data Source=(local);User id=sa;Password=123456; Initial Catalog=master"; 
     DBC.DataBaseName = "MyDatabase"; 
     DBC.DataBase_MDF = @"D:Program FilesMicrosoft SQL ServerMSSQLDataMyDatabase_Data.MDF"; 
     DBC.DataBase_LDF = @"D:Program FilesMicrosoft SQL ServerMSSQLDataMyDatabase_Log.LDF"; 
     DBC.AddDataBase(); 
     } 
      
        备份数据库 
     private void button2_Click(object sender, EventArgs e) 
     { 
     DataBaseControl DBC = new DataBaseControl(); 
     DBC.ConnectionString = "Data Source=(local);User id=sa;Password=123456; Initial Catalog=master"; 
     DBC.DataBaseName = "MyDatabase"; 
     DBC.DataBaseOfBackupName = @"back.bak"; 
     DBC.DataBaseOfBackupPath = @"D:Program FilesMicrosoft SQL ServerMSSQLData"; 
     DBC.BackupDataBase(); 
     } 
      
        分离数据库 
     private void button3_Click(object sender, EventArgs e) 
     { 
     DataBaseControl DBC = new DataBaseControl(); 
     DBC.ConnectionString = "Data Source=(local);User id=sa;Password=123456; Initial Catalog=master"; 
     DBC.DataBaseName = "MyDatabase"; 
     DBC.DeleteDataBase(); 
     } 
  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/liulaocai2/p/3592316.html
Copyright © 2011-2022 走看看