System.Data.SqlClient.SqlException

时间:2013-09-22 06:34:30

标签: c# asp.net sql-server webforms

protected void Button1_Click(object sender, EventArgs e)
{
    if (TextName.Text != "" && TextPass.Text != "" && TextRePass.Text != "" && TextAddr.Text != "" && TextPhn.Text != "")
    {
        SqlConnection i = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Study materials\Mobile Shop\App_Data\;Integrated Security=True;User Instance=True");
        i.Open();
        string q = "insert into Register values ('" + TextName.Text + "','" + TextRePass.Text + "','" + TextAddr.Text + "','" + TextPhn.Text + "','" + Label1.Text + "','" + Label2.Text + "')";

        SqlCommand cmd = new SqlCommand(q, i);
        cmd.ExecuteNonQuery();
        Label3.Text = "DETAILS ENTERED SUCCESSFULLY IN THE DATABASE!!";
    }
    else
    {
        Label4.Text = "ALL FIELDS ARE MANDATORY";
    }
}

我在这里遇到错误:

i.Open(); 

错误是:

  

尝试为文件E附加自动命名的数据库:\ Study materials \ Mobile Shop \ App_Data \ failed。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.Data.SqlClient.SqlException:尝试为文件E附加自动命名的数据库:\ Study materials \ Mobile Shop \ App_Data \ failed。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。

1 个答案:

答案 0 :(得分:1)

您需要在连接字符串中使用数据库名称:

SqlConnection i = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Study materials\Mobile Shop\App_Data\<DB Name Here>;Integrated Security=True;User Instance=True");
                                                                                                                           ^^^^^^^^^^^^