【问题标题】:ASP.NET connection string to local SQL Server database, using web.config使用 web.config 到本地 SQL Server 数据库的 ASP.NET 连接字符串
【发布时间】:2015-04-25 07:22:45
【问题描述】:

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

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

以下是我为此采取的步骤:

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

  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();
    

    此时抛出异常。

我尝试进行设置,使其简单易学。我错过了什么?

【问题讨论】:

  • 你真的在你的new SqlConnection 中调用了一个方法cn_str() 还是只是一个错字?
  • @PilgerstorferFranz:cn_str() 方法在我的代码中是正确的,但例如这里应该只是 cn_str。感谢您指出。我将编辑我的问题,因为@NightOwl888 在下面的回答中也指出了这一点。

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


【解决方案1】:

当您使用 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。
【解决方案2】:

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

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

SqlConnection conn = new SqlConnection(cn_str);

【讨论】:

  • 嗯,我的错,我没有指出我实际上是在使用函数来获取cn_str。感谢您指出这一点,但我认为这实际上并不是问题所在。如果需要,我会编辑我的问题。
  • 如果这是问题所在,则错误消息会有所不同,并且异常会在不同的时间发生。
猜你喜欢
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 2010-11-24
相关资源
最近更新 更多