c#中的备份SQL Server 2014数据库不起作用

时间:2017-05-31 10:05:15

标签: c# sql-server

我创建了一个从SQL Server 2014备份整个数据库的程序,我在另一台笔记本电脑(was working on it coding with c#)上使用之前使用了代码。 现在我试图备份不工作这是代码: 1 / - SqlConnection:

SqlConnection con = new SqlConnection(WindowsFormsApplication11.Properties.Settings.Default.database1ConnectionString);

2 / - textbtn1

    private void browseButton_Click(object sender, EventArgs e)
{
    FolderBrowserDialog dlg = new FolderBrowserDialog();
    if (dlg.ShowDialog() == DialogResult.OK)
    {
         textBox1.Text = dlg.SelectedPath;
         BackupButton.Enabled = true;
    }
}

3 / - textbtn2代码:

private void BackupButton_Click(object sender, EventArgs e)
{
    string database = con.Database.ToString();
    try
    {
        if(textBox1.Text==string.Empty)
        {
            MessageBox.Show("please enter backup file location");
        }
        else
        {
            string cmd = "BACKUP DATABASE [" + database + "] TO DISK='" + textBox1.Text + "\\" + "database" + "-" + DateTime.Now.ToString("yyyy-MM-dd--HH-mm-ss") + ".bak'";

            using(SqlCommand command = new SqlCommand(cmd,con))
            {
                if(con.State!=ConnectionState.Open)
                {
                    con.Open();
                }
                command.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("database backup done successefully");
                BackupButton.Enabled = false;
            }
       }

    }
    catch
    {

    }
}

**即使这段代码不起作用也没有消息显示:p,不知道为什么?

我改变了所有的东西,我创建了一个名为DBconnect的新类:

    class DBconnect 
{
    public SqlConnection myConn = new SqlConnection(@"Data Source=MYSERVERNAME;Initial Catalog=MYDBNAME;User ID=sa;Password=12345");


    public void backup(string name_path)
    {
        try
        {
            string query = "Backup Database MYDBNAMEto Disk ='" + name_path + ".bak'";
            SqlCommand myCommand = new SqlCommand();
            myCommand.CommandText = query;
            myCommand.Connection = myConn;
            myCommand.ExecuteNonQuery();
            MessageBox.Show("sauvegarde succès", "sauvegarde", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message);
        }
    }
}

}

以我的形式我这样做了:

DBconnect conn = new DBconnect();

在备份textbtn2中我这样做了:

 string Namefile = textboxBATH.Text + "\\MYDBNAME" + " " + DateTime.Now.ToShortDateString().Replace('/', '-') + "-" + DateTime.Now.ToLongTimeString().Replace(':', '-');
 Conn.backup(Namefile);

在这种情况下,我面对这个错误信息:

  

无法打开备份设备。操作系统错误5(访问被拒绝。)BACKUP DATABASE异常终止。

我认为SQL服务可能没有对应该创建备份浴的路径的权限。我在我的桌面上创建了新的文件夹并给了它读取和写入的权限..这也不起作用..:p

谢谢大家。

0 个答案:

没有答案