ASP.NET连接字符串到本地SQL Server数据库,使用web.config

时间:2015-02-23 20:25:55

标签: asp.net sql-server connection-string

为什么System.Data.SqlClient.SqlConnection类抛出“参数不正确”的异常?

我正在尝试使用.NET Framework 4.5学习如何使用本地SQL数据库和ASP.NET MVC项目设置数据库连接。

以下是我采取的步骤:

  1. 在项目App_Data文件夹中创建了一个名为TestSQLdb.mdf的新SQL Server数据库。

  2. web.config中创建了一个连接字符串:

    <add name="SQLTestConnection1" 
         connectionString="Data Source=(LocalDB);initial catalog=TestSQLdb;Integrated Security=true" />  
    
  3. 通过

    访问连接字符串
    string cn_str = ConfigurationManager.ConnectionStrings["SQLTestConnection1"].ConnectionString;
    

    (有关详细信息,请参阅this SO主题)。

  4. 创建了一个新连接:

    SqlConnection conn = new SqlConnection(cn_str);
    
  5. 尝试打开连接:

    try
    {
         conn.Open();
    

    此时,抛出异常。

  6. 我尝试设置它,这样简单易学。我错过了什么?

2 个答案:

答案 0 :(得分:5)

当您使用localDB时,您必须在connectionString中指定 AttachDbFileName 属性。此属性应指向 TestSQLdb.mdf 文件。初始目录是mdf文件中数据库的名称。

有关此示例的信息,请参阅MSDN

<add name="ConnectionStringName"
providerName="System.Data.SqlClient"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />

答案 1 :(得分:0)

您没有将变量传递给new SqlConnection,而是尝试调用名为cn_str的函数。

要使其正常工作,您需要从名称中删除括号。

SqlConnection conn = new SqlConnection(cn_str);