错误消息:初始化字符串的格式不符合从索引0开始的规范

时间:2015-02-28 21:29:01

标签: c# asp.net sql-server-2014

我搜索了SO,但没有找到解决我错误的方法 我正在使用VS 2013和SQL Server 2014.

以下是我的连接字符串:

using (SqlConnection sqlConnection = new SqlConnection("cnInvestTracker"))
{

}  

我的web.config是:

<connectionStrings>
    <add name="cnInvestTracker" 
          connectionString="Data Source=localhost;Initial Catalog=InvestTracker;Integrated Security=True"
          providerName="System.Data.SqlClient" />
</connectionStrings>  

当代码执行using行时,我收到一条错误消息。错误消息是:

  

初始化字符串的格式不符合规范   从指数0开始。

导致错误的原因是什么?

2 个答案:

答案 0 :(得分:5)

"cnInvestTracker" 本身不是有效的连接字符串。这是您在这里尝试使用的内容:

new SqlConnection("cnInvestTracker")

该构造函数不想要连接字符串的名称,它需要the connection string itself

new SqlConnection(ConfigurationManager.ConnectionStrings["cnInvestTracker"].ConnectionString)

(您可能需要添加对System.Configuration的引用,并且您可能需要添加一些错误检查以确保在尝试引用该名称之前存在该名称的连接字符串。)

答案 1 :(得分:2)

using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["cnInvestTracker"].ConnectionString))
{

}  

一旦建立连接,您可能希望对代码执行更多操作,因此下面是您希望使用.Fill()

SqlDataAdapter sda;
DataTable someDataTable = new DataTable();
using (SqlConnection connStr = new SqlConnection(ConfigurationManager.ConnectionStrings["cnInvestTracker"].ConnectionString))
{
    using (SqlCommand cmd = new SqlCommand("ups_GeMyStoredProc", connStr)) //replace with your stored procedure. or Sql Command 
    {
        cmd.CommandType = CommandType.StoredProcedure;
        sda = new SqlDataAdapter(cmd);
        new SqlDataAdapter(cmd).Fill(someDataTable);
    }
}