2014-10-18 76 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

相關問題