2014-10-18 39 views
0

我试图使用来自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> 

+0

你可以包括你整个的app.config?这听起来像是格式不正确。 – 2014-10-18 20:12:53

+0

你应该看看[我们可以停止使用AddWithValue()了吗?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)并停止使用'.AddWithValue()' - 它可能会导致意外的和令人惊讶的结果... – 2014-10-18 20:12:57

+0

检查调试器中的异常对象(或ToString异常而不是仅显示消息属性)。通常,对于这种错误,有一个内部例外,更多细节。 – 2014-10-18 20:14:01

回答

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> 
+0

好的我试着编辑标签,但它仍然给出了相同的错误。 – MDHenry 2014-10-18 21:13:09

+0

我已经更新了我的回复,以澄清您的app.config中会导致您的问题的其他一些问题。 – 2014-10-18 21:32:10

相关问题