首页新闻找找看学习计划

asp.net数据库还原问题

0
悬赏园豆:50 [已关闭问题]

每次点数据库还原都不可以。可不可以强制关闭数据库服务器的?请高手帮忙

if(!IsPostBack)
        {
            string cmdtxt1 = "Data Source=.;Initial Catalog=GCGL;Integrated Security=True";
            string cmdtxt2 = "Exec sp_helpdb";
            SqlConnection Con = new SqlConnection(cmdtxt1);
            Con.Open();
            SqlCommand mycommand = new SqlCommand(cmdtxt2, Con);
            SqlDataReader dr = mycommand.ExecuteReader();
            this.DropDownList1.DataSource = dr;
            this.DropDownList1.DataTextField = "name";
            this.DropDownList1.DataBind();
            dr.Close();
            Con.Close();

        }

 

 protected void btn_Restore_Click(object sender, EventArgs e)
    {
         string path = this.FileUpload1.PostedFile.FileName; //获得备份路径及数据库名称 
         string last = path.Substring(path.LastIndexOf(".") + 1);//获取文件的后缀名
         string dbname = this.DropDownList1.SelectedValue;
         if (last == "bak")    //判断是不是数据库备份文件
         {
             string cmdtxt1 = "Data Source=.;database='" + this.DropDownList1.SelectedValue + "';Integrated Security=True";
             string cmdtxt2 = "use master restore database " + dbname + " from disk='" + path + "'";
             SqlConnection Con = new SqlConnection(cmdtxt1);
             Con.Open();
             try
             {
                 SqlCommand Com = new SqlCommand(cmdtxt2, Con);
                 Com.ExecuteNonQuery();
                 Response.Write("<script language=javascript>alert('还原数据成功!'); location='Db_Restore.aspx'</script>");
             }
             catch (Exception ms)
             {
                 Response.Write(ms.Message);
                 Response.Write("<script language=javascript>alert('还原数据失败!') </script>");
             }
             finally
             {
                 Con.Close();
             }
         }
         else
         {
             Response.Write("<script language=javascript>alert('必须是数据库文件!'); </script>");
         }

    }

享受生活1987的主页 享受生活1987 | 初学一级 | 园豆:150
提问于:2009-11-04 12:47
< >
分享
其他回答(3)
0

看了一下,估计原因应该出在没有选择还原时的操作上,改成这样试试:

 string cmdtxt2 = "use master restore database " + dbname + " from disk='" + path + "' with replace";

 

若还有问题,可以参考http://www.cnblogs.com/lileltp/archive/2007/11/04/949213.html

dege301 | 园豆:2825 (老鸟四级) | 2009-11-04 12:52
QQ 615116669 麻烦加下我 还有些问题
支持(0) 反对(0) 享受生活1987 | 园豆:150 (初学一级) | 2009-11-05 09:17
0

建议你写存储过程啊

苏飞 | 园豆:2024 (老鸟四级) | 2009-11-04 13:48
这样可能会更好一点点
支持(0) 反对(0) 苏飞 | 园豆:2024 (老鸟四级) | 2009-11-04 13:49
0

1.string path = this.FileUpload1.PostedFile.FileName; //获得备份路径及数据库名称  ,这里path是路径吗?应该是xxxx.bak吧。

2.楼主确定是在web服务器本地操作的?因为你直接使用了这个path,而不是先保存上传的备份文件再还原。

3.如果是肯定在web服务器本地操作的,那为什么要放到asp.net网站上呢,用dbms不是更好吗?

莫慌 | 园豆:9 (初学一级) | 2009-11-04 23:59
0

使用存储过程,直接调用一下就OK。

天堂口 | 园豆:514 (小虾三级) | 2009-11-05 10:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册