Asp.net 数据库不存在

Asp.net 数据库不存在,asp.net,database,Asp.net,Database,这是我备份数据库的代码。 这些是我的数据库: 我得到了这个错误: 数据库“BakupDB”不存在。确保输入了名称 正确地备份数据库正在异常终止 以及我的网页的代码: public partial class Default2 : System.Web.UI.Page { string dbname = "BakupDB"; SqlConnection sqlcon = new SqlConnection(); SqlCommand sqlcmd = new SqlCom

这是我备份数据库的代码。
这些是我的数据库:

我得到了这个错误:

数据库“BakupDB”不存在。确保输入了名称 正确地备份数据库正在异常终止

以及我的网页的代码:

public partial class Default2 : System.Web.UI.Page
{
    string dbname = "BakupDB";
    SqlConnection sqlcon = new SqlConnection();
    SqlCommand sqlcmd = new SqlCommand();
    SqlDataAdapter da = new SqlDataAdapter();
    DataTable dt = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click1(object sender, EventArgs e)
    {
        //Mentioned Connection string make sure that user id and password sufficient previlages
        sqlcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BakupDB.mdf;Integrated Security=True;User Instance=True";

        //Enter destination directory where backup file stored
        string destdir = "D:\\backupdb";

        try
        {
            sqlcon.Open();
            sqlcmd = new SqlCommand("backup database "+dbname+" to disk='" + destdir + "\\" + DateTime.Now.ToString("ddMMyyyy_HHmmss") + ".Bak'", sqlcon);
            sqlcmd.ExecuteNonQuery();

            sqlcon.Close();
            Response.Write("Backup database successfully");
        }
        catch (Exception ex)
        {
            Response.Write("Error During backup database!");
        }
    }
}

我做错了什么?

看起来你在尝试使用一种新的方法。顺便说一句(与您的问题没有100%的关联),我认为此功能在SQL Server Express 2012中已被弃用(并且自SQL Server 2008以来一直处于弃用状态)

对不起,我把它放在一边了。关于您的问题,以下内容可能会对您有所帮助:

  • 使用
我想说的是,堆栈溢出问题更接近于您试图通过执行SQL命令来实现的用例,但如果您感兴趣或想尝试其他方法,请参考SMO方法。根据SO问题,您的连接字符串似乎:

sqlcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BakupDB.mdf;Integrated Security=True;User Instance=True";
缺少一个
Database=
节,因此可能应该如下所示:

sqlcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BakupDB.mdf;Integrated Security=True;User Instance=True;Database=BakupDB";

看起来你在试着使用一种新的方法。顺便说一句(与您的问题没有100%的关联),我认为此功能在SQL Server Express 2012中已被弃用(并且自SQL Server 2008以来一直处于弃用状态)

对不起,我把它放在一边了。关于您的问题,以下内容可能会对您有所帮助:

  • 使用
我想说的是,堆栈溢出问题更接近于您试图通过执行SQL命令来实现的用例,但如果您感兴趣或想尝试其他方法,请参考SMO方法。根据SO问题,您的连接字符串似乎:

sqlcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BakupDB.mdf;Integrated Security=True;User Instance=True";
缺少一个
Database=
节,因此可能应该如下所示:

sqlcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BakupDB.mdf;Integrated Security=True;User Instance=True;Database=BakupDB";

这个代码对我有用:

private void button5_Click(object sender, EventArgs e)
{
    try
    {
        string dlink= @"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\jsdb.mdf; Database=jsdb; User Instance=True; Integrated Security=True;Asynchronous Processing= True";
        SqlConnection dcc = new SqlConnection(dlink);
        dcc.Open();
            string database = "jsdb"; 
            string blc = textBox1.Text;  //(Its the location to save the file)
            string nm = "dbBackup";
            string dt =DateTime.Today.ToShortDateString();
            string sl = "BACKUP DATABASE "+database+" TO DISK = '"+blc+"\\"+nm+"-"+dt+".bak'" ;
            SqlCommand cql = new SqlCommand(sl,dcc);
            cql.ExecuteNonQuery();
            MessageBox.Show("Database backup completed successfully..");
            dcc.Close();
    } 
   catch (Exception ex)
    { MessageBox.Show(ex.Message); }
}

这个代码对我有用:

private void button5_Click(object sender, EventArgs e)
{
    try
    {
        string dlink= @"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\jsdb.mdf; Database=jsdb; User Instance=True; Integrated Security=True;Asynchronous Processing= True";
        SqlConnection dcc = new SqlConnection(dlink);
        dcc.Open();
            string database = "jsdb"; 
            string blc = textBox1.Text;  //(Its the location to save the file)
            string nm = "dbBackup";
            string dt =DateTime.Today.ToShortDateString();
            string sl = "BACKUP DATABASE "+database+" TO DISK = '"+blc+"\\"+nm+"-"+dt+".bak'" ;
            SqlCommand cql = new SqlCommand(sl,dcc);
            cql.ExecuteNonQuery();
            MessageBox.Show("Database backup completed successfully..");
            dcc.Close();
    } 
   catch (Exception ex)
    { MessageBox.Show(ex.Message); }
}

你从哪里得到上面提到的错误?这就是您捕获的异常的消息吗?您是否已检查您的
| DataDirectory |
是否为包含.mdf文件的预期路径?您从哪里得到上述错误?这就是您捕获的异常的消息吗?您是否已检查您的
| DataDirectory |
是否为包含.mdf文件的预期路径?