C# sql server 数据库备份和还原

///
///备份方法
///
SqlConnection   conn   =   new   SqlConnection( "Server=.;Database=master;User   ID=sa;Password=sa; ");

SqlCommand   cmdBK   =   new   SqlCommand();
cmdBK.CommandType   =   CommandType.Text;
cmdBK.Connection   =   conn;
cmdBK.CommandText   =   @ "backup   database   test   to   disk= 'C:\ba '   with   init ";

try
{
  conn.Open();
  cmdBK.ExecuteNonQuery();
  MessageBox.Show( "Backup   successed. ");
}
catch(Exception   ex)
{
  MessageBox.Show(ex.Message);
}
finally
{
  conn.Close();
  conn.Dispose();
}


///
///还原方法
///
SqlConnection   conn   =   new   SqlConnection( "Server=.;Database=master;User   ID=sa;Password=sa;Trusted_Connection=False ");
conn.Open();

//KILL   DataBase   Process
SqlCommand   cmd   =   new   SqlCommand( "SELECT   spid   FROM   sysprocesses   ,sysdatabases   WHERE   sysprocesses.dbid=sysdatabases.dbid   AND   sysdatabases.Name= 'test ' ",   conn);
 
SqlDataReader   dr;
dr   =   cmd.ExecuteReader();
ArrayList   list   =   new   ArrayList();
while(dr.Read())
{
  list.Add(dr.GetInt16(0));
}
dr.Close();
for(int   i   =   0;   i   <   list.Count;   i++)
{
  cmd   =   new   SqlCommand(string.Format( "KILL   {0} ",   list),   conn);
  cmd.ExecuteNonQuery();
}

SqlCommand   cmdRT   =   new   SqlCommand();
cmdRT.CommandType   =   CommandType.Text;
cmdRT.Connection   =   conn;
cmdRT.CommandText   =   @ "restore   database   test   from   disk= 'C:\ba ' ";

try
{
  cmdRT.ExecuteNonQuery();
  MessageBox.Show( "Restore   successed. ");
}
catch(Exception   ex)
{
  MessageBox.Show(ex.Message);
}
finally
{
  conn.Close();
}
posted @ 2011-01-20 20:13  ColdFish_Pegasus  阅读(751)  评论(0编辑  收藏  举报