使用SqlConnection和AttachDbFilename时出现奇怪的错误

时间:2018-07-06 13:16:11

标签: c# sql-server sqlconnection

尝试连接到Web应用程序中的附加数据库时,我遇到一个奇怪的错误。

我的连接字符串:

<add name="ExtJSTestDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KODatatableContext.mdf;User Instance=True;Integrated Security=True;" providerName="System.Data.SqlClient" />

控制器中的代码:

using (var cn = new SqlConnection("ExtJSTestDB")){...}

就在调用“ new SqlConnection”的那一刻,我得到了:

引发异常:

  System.Data.dll中的

'System.ArgumentException'   附加信息:索引格式为“ 0”开始的初始格式设置为“初始格式”。

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

如果您在Web.config xml元素connectionStrings中的connectionString`

  <connectionStrings>
    <add name="ExtJSTestDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KODatatableContext.mdf;User Instance=True;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

您不能使用name="ExtJSTestDB"来设置连接字符串,而需要使用System.Configuration.ConfigurationManager.ConnectionStrings Concollection来读取ConnectionString数据。

string connStr= System.Configuration.ConfigurationManager.ConnectionStrings["ExtJSTestDB"];
using (var cn = new SqlConnection(connStr)){...}