苏飞论坛

标题: C#数据库还原 [打印本页]

作者: A_Jia0    时间: 2014-4-21 11:27
标题: C#数据库还原
求助一个关于数据库恢复的,C# winform
有一个例子 我怎么都不成功
总是弹出还原失败,请确保还原项与库对应 或者 无法打开登录所请求的数据库 "MyDB"。登录失败,用户 'sa' 登录失败。

private void button1_Click(object sender, EventArgs e)
        {
            if (this.hy.ShowDialog() == DialogResult.OK)
            {
                this.textBox1.Text = this.hy.FileName;
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            
            Restore();
        }
        
        private void Restore()
        {
            string path = this.textBox1.Text; //获得备份路径及数据库名称
            string dbname = this.comboBox1.Text;string SqlStr1 = "Server=(local);database='" + this.comboBox1.Text + "';User ID=sa;Password=sa";
            string SqlStr2 = "restore database " + dbname + " from disk='" + path + "'";
            using (SqlConnection con = new SqlConnection(SqlStr1))
            {
                con.Open();
                try
                {
                    SqlCommand cmd = new SqlCommand(SqlStr2, con);
                    cmd.Connection = con;
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("还原数据成功");
                }
                catch (Exception error)
                {
                    MessageBox.Show("还原失败,请确保还原项与库对应");
                }
                finally
                {
                    con.Close();
                }
            }
        }

作者: 站长苏飞    时间: 2014-4-21 13:18
   string dbname = this.comboBox1.Text;string SqlStr1 = "Server=(local);database='" + this.comboBox1.Text + "';User ID=saassword=sa";

'" + this.comboBox1.Text + "'这里的'不用吧。
另外你确定能连接上数据库吗,好像只有连接不上才会报这个错吧。
或者是你直接打出来error的值看看是什么,不要写死了
作者: A_Jia0    时间: 2014-4-21 14:04
站长苏飞 发表于 2014-4-21 13:18
string dbname = this.comboBox1.Text;string SqlStr1 = "Server=(local);database='" + this.comboBox1 ...

膜拜中……太厉害了!通过输出error 我慢慢修改!还原成功了!!!对于我这个小白来说 这是个好方法!
作者: 站长苏飞    时间: 2014-4-21 14:17
A_Jia0 发表于 2014-4-21 14:04
膜拜中……太厉害了!通过输出error 我慢慢修改!还原成功了!!!对于我这个小白来说 这是个好方法!

这个是一种方法,大部分程序都可以通过调试来解决,这个可以看我的教程http://www.sufeinet.com/thread-4856-1-1.html
作者: A_Jia0    时间: 2014-4-21 14:40
站长苏飞 发表于 2014-4-21 14:17
这个是一种方法,大部分程序都可以通过调试来解决,这个可以看我的教程http://www.sufeinet.com/thread-4 ...

thx~




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4