源码如下:
数据库备份:(其中:TextBox1.Text = "c:\\schoolmanagebackup("+DateTime.Now.ToShortDateString()+").bak")
        string commstr = "'"+ TextBox1.Text + "'";
        string backup_sql = "use schoolmanage2005;backup database schoolmanage2005 to disk=" + commstr + " with INIT;";
        SqlCommand comm = new SqlCommand(backup_sql, conn);
        try
        {
            conn.Open();
            comm.ExecuteNonQuery();
            Response.Write("<script language=javascript>alert('数据库备份成功,备份文件在C盘根目录下!')</script>");
        }
        catch
        {
            Response.Write("<script language=javascript>alert('数据库备份失败!')</script>");
        }
        finally
        { 
            conn.Close();
        }
数据库恢复:
        string path = "'"+FileUpload1.PostedFile.FileName+"'";
        string sql = "use master;Alter Database schoolmanage2005 Set Offline with Rollback immediate;"; 
        sql += "Restore Database schoolmanage2005 from disk = @bkfile;";
        sql += "Alter Database schoolmanage2005 Set OnLine With rollback Immediate;";
        SqlCommand comm = new SqlCommand(sql, conn);
        comm.Parameters.AddWithValue("@bkfile", path);
        conn.Open();      
        comm.ExecuteNonQuery();
        conn.Close();
错误信息:
无法打开备份设备 ''C:\schoolmanagebackup(2006-9-6).bak''。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
RESTORE DATABASE 操作异常终止。
已将数据库上下文改为 'master'。

解决方案 »

  1.   

    你的数据库备份在c盘,c盘的权限是否放开了?
    程序中你是否是用sa的用户进行登陆备份的?
      

  2.   

    web服务器和数据库服务器是同一台机器么?
      

  3.   

    web服务器和数据库服务器是同一台机器
      

  4.   

    不是用sa用户进行登陆备份的(我是用信任连接登陆的),怎么知道c盘的权限是否放开?
      

  5.   

    改为其它盘如:TextBox1.Text = "e:\\schoolmanagebackup("+DateTime.Now.ToShortDateString()+").bak")错误信息是一样的。
      

  6.   


    我这里有一个例子,需要用到mssql 2000 中的一个dll的,调试通过的http://www.dj9158.com/ShowFileData.aspx?ID=34