为什么我在尝试与SQL Server建立连接时遇到此错误?

时间:2011-11-05 18:06:20

标签: c# asp.net sql-server

我正在尝试在表格中插入值,但是当我点击SignUp按钮时,它会给我错误

  

尝试为文件Database.mdf附加自动命名的数据库   失败。存在同名的数据库,或指定的文件不能存在   打开,或者它位于UNC分享。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.Data.SqlClient.SqlException:尝试   为文件Database.mdf附加自动命名的数据库失败。一个数据库   存在同名,或指定的文件无法打开,或者它   位于UNC分享。

     

来源错误:

     

第22行:string con = ConfigurationManager.ConnectionStrings [“connection”]。ConnectionString;
  第23行:SqlConnection conn = new SqlConnection(con);
  第24行:   conn.Open(); //错误行
   第25行:if(selectques.SelectedItem.Text ==   “写下你自己的问题?”)
   第26行:{

我的按钮事件

protected void signup_Click(object sender, EventArgs e)
{
   string con = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
   SqlConnection conn = new SqlConnection(con);

   conn.Open();

   if (selectques.SelectedItem.Text == "Write your own question?")
   {
      SqlCommand cmd = new SqlCommand("insert into registration values('" + username + "','" + passwrd + "','" + emailadd + "','" + alterquestion + "','" + securityanswer + "'", conn);
      cmd.ExecuteNonQuery();
      conn.Close();
   }
   else
   {
      SqlCommand cmd = new SqlCommand("insert into registration values('" + username + "','" + passwrd + "','" + emailadd + "','" + selectques + "','" + securityanswer + "'", conn);
      cmd.ExecuteNonQuery();
      conn.Close();
   }

我的web.config连接字符串

<configuration>
    <appSettings/>
  <connectionStrings>
    <add name="connection" 
         connectionString="server=.\sqlexpress; AttachdbFilename=Database.mdf; integrated security=true; user instance=true"/>
  </connectionStrings>

2 个答案:

答案 0 :(得分:5)

这部分连接字符串错误:

AttachdbFilename=Database.mdf

AttachdbFilename需要MDF文件的完整路径,而不仅仅是其名称。

来源:
Connecting to SQL Server Express User Instances (ADO.NET)

从链接引用:

  

AttachDbFileName连接字符串关键字用于附加主数据库文件(.mdf),该文件必须包含完整路径名。

答案 1 :(得分:1)

变化:

AttachdbFilename=Database.mdf

到此:

AttachdbFilename=|DataDirectory|Database.mdf