0
DataSet ds = new DataSet("Transactions");

using (SqlConnection conn = new SqlConnection("myConnectionString"))
{
   SqlCommand sqlComm = new SqlCommand("[dbo].[GetFullTransactionList]", conn);
   sqlComm.CommandType = CommandType.StoredProcedure;

   SqlDataAdapter da = new SqlDataAdapter();
   da.SelectCommand = sqlComm;
   da.Fill(ds);
}

return ds;

的相关内容app.config

<configuration>
   <connectionStrings>
      <add name="myConnectionString"
           connectionString="Data Source=LAPTOP-LT;Initial Catalog=myDb;User ID=sa;Password=abc"
           providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

我得到了这个例外:

初始化字符串的格式不符合从索引 0 开始的规范。 说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.ArgumentException:初始化字符串的格式不符合从索引 0 开始的规范。

源错误:

Line 44:             DataSet ds = new DataSet("Transactions");
Line 45:             using (SqlConnection conn = new SqlConnection("myConnectionString"))
4

3 回答 3

1

在 app.config 中引用连接字符串的正确方法是:

string cnnString = ConfigurationManager.ConnectionStrings["yourCnnString"].ConnectionString;
using(SqlConnection conn = new SqlConnection(cnnString))
{ 

}

不要忘记最终属性ConnectionString

于 2013-07-22T12:15:28.730 回答
0

要使用配置文件中的连接字符串,您需要访问它ConfigurationManager

所以它将是:

   using (SqlConnection conn = new 
     SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"]))
   {
          ...
   }

请参阅文档以获取更多信息

于 2013-07-22T12:10:18.083 回答
0

SqlConnection 期望一个真正的连接字符串,而不是来自 app.config 的键。尝试阅读它

ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString
于 2013-07-22T12:11:34.003 回答