我真的是个编程新手,所以如果我的知识真的不够,请原谅。我正在为我的学校做一个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);