【问题标题】:System.Data.SqlClient.SqlExceptionSystem.Data.SqlClient.SqlException
【发布时间】:2013-09-22 06:34:29
【问题描述】:
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\ 附加自动命名数据库失败。存在同名数据库,或指定文件无法打开,或位于 UNC 共享上。

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

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

【问题讨论】:

  • 你的 sql 字符串路径没有指向任何数据库文件..(mdf)
  • 这是向任何类型的 sql 注入打开数据库的最佳方式

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


【解决方案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");
                                                                                                                           ^^^^^^^^^^^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2019-10-26
    • 1970-01-01
    相关资源
    最近更新 更多