【发布时间】: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