使用本地数据库时,配置系统无法初始化

时间:2014-10-18 20:08:44

标签: c# localdb

我正在尝试使用来自Windows窗体应用程序的输入进入localdb,但是当我将数据发送到数据库时,它返回“配置系统无法初始化”。

try
{
    SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["database"].ConnectionString);

    SqlCommand cmd = conn.CreateCommand();person newPerson = new person(FirstNameBox.Text, phoneBox.Text, emailBox.Text, LastNameBox.Text);
    cmd.CommandText = @"INSERT INTO Person (FirstName, LastName, Email,Phone)
                        VALUES(@FirstName, @LastName, @Email, @Phone)";

    cmd.Parameters.AddWithValue("@FirstName", newPerson.getFirstName());
    cmd.Parameters.AddWithValue("@LastName", newPerson.getLastName());
    cmd.Parameters.AddWithValue("@Email", newPerson.getEmail());
    cmd.Parameters.AddWithValue("@Phone", newPerson.getPhone());

    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    if (!ValidateForm())
       return;
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, Application.ProductName,
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}

这是app.config部分

<?xml version="1.0" encoding="utf-8" ?>

<configSections>
  <connectionStrings>
    <add name="database" 
         connectionString=" Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Matthew\Documents\Visual Studio 2012\Projects\Midterm\Midterm\Database1.mdf;Integrated Security=True"></add>
</connectionStrings>
</configSections>
<connectionStrings>
    <add name="Midterm.Properties.Settings.Database1ConnectionString"
        connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
        providerName="System.Data.SqlClient" />
</connectionStrings>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>

1 个答案:

答案 0 :(得分:2)

我在这里看到的最明显的问题是你的app.config指定了一个<connectionString>部分,它应该是<connectionStrings>(注意 s )。

您可能希望提供整个app.config,因为可能存在阻止ConfigurationManager加载您的app.config的其他语法/配置问题。

编辑更新的app.config

您的app.config文件格式不正确。 <configSections>不应该是文件的根元素(它应该是<configuration>)。

ConfigurationManager.ConnectionStrings的MSDN文档显示了应该将app.config文件格式化为的示例。

但是,简而言之,<connectionStrings>元素(以及其他元素,例如<startup>)应该是<configuration>的子元素。

你的app.config应该是什么样的:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    *** ADD YOUR <add> LINES HERE ***
  </connectionStrings>
  <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>
相关问题