日期:2014-05-20  浏览次数:20507 次

数据库远程备份
我做了一个程序,要求可以备份数据,
我用的是SQL   SERVER   2000,数据库和程序不在一个机子上,
请问怎么备份了???/

------解决方案--------------------
那么拧的人,哈哈
------解决方案--------------------
C#实现SQLSERVER2000数据库备份还原的两种方法
: 方法一(不使用SQLDMO):

///
///备份方法
///
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();
}