我真的是个编程新手,所以如果我的知识真的不够,请原谅。我正在为我的学校做一个C项目,我在启动数据库时遇到了问题。
以下是一些代码:

private void buttonPurchase_Click(object sender, EventArgs e)
{
    if (MessageBox.Show("Purchase?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
    {
        // store invoice
        System.Data.SqlClient.SqlConnection sqlConnection1 =
             new System.Data.SqlClient.SqlConnection("CarDBConnectionString");
        System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = "INSERT into invoiceTbl(invoiceId, date, time) values (1, 21/6/2014, 11:13PM)";

        sqlConnection1.Open();
        cmd.ExecuteNonQuery();
        sqlConnection1.Close();
     }
}

有了这些代码,我一直面临着错误
初始化字符串的格式不符合“system.data.dll中发生'system.argumentexception'类型的未处理异常”下从索引0 1开始的规范
这里还有我app.config中的代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>

  <connectionStrings>
    <add name="CarDBConnectionString" connectionString="Data Source=(LocalDB)\v11.0;InitialCatalogue=CarDB;AttachDbFilename=|DataDirectory|\CarDB.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="Draft_1.Properties.Settings.CarDBConnectionString"
      connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\CarDB.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

</configuration>

我试过在任何地方搜索,但我似乎不明白任何解决方案:—(任何帮助将非常感谢,谢谢!

最佳答案

"InitialCatalogue"中输入错误的部分(正确的键是Initial Catalog),代码中有错误。
您需要读取连接字符串的值并将其传递给SqlConnection的构造函数。构造函数需要一个有效的连接字符串,而不是配置文件节的键
你可以用

  string connectionString = ConfigurationManager.ConnectionStrings
                                        ["CarDBConnectionString"].ConnectionString;
  SqlConnection sqlConnection1 = new SqlConnection(connectionString);

08-04 03:45