2014-10-21 2 views
0

Windows Form 응용 프로그램의 입력을 localDB로 가져 오는 C# 프로그램을 만들고 있습니다. app.config 및 실제 호출에 대한 자습서를 살펴 보았으며 여기서도 다른 질문을 살펴 보았습니다. 특히 내가 그것을 사용하지 않는 경우 try/catch 줄 완전히 "SqlCommand cmd conn.CreateCommand(); 사람 newPerson = FirstNameBox.Text, phoneBox.Text, emailBox.Text, LastNameBox.Text; "구성 요소가 선언되지 않았습니다."라고 말하지만 잘못된 것을 보여주지 않았습니다. 당신은 당신의 구성 파일에 두 개의 서로 다른 <connectionStrings> 노드가C# : 구성 시스템을 초기화하지 못했습니다.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
</startup> 
<configSections> 
<sectionGroup name="applicationSettings" 
       type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
    <section name="Midterm.Properties.Settings" 
      type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
      requirePermission="false" /> 
    </sectionGroup> 
    </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;pooling=false" 
     providerName="System.Data.SqlClient" ></add> 
    </connectionStrings> 

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

</configuration> 
+0

connectionStrings라는 두 개의 요소가 맞습니까? –

+0

같은 질문을 두 번 이상 게시하지 마십시오. – Steve

답변

0

try 
     { 
      System.Data.SqlClient.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는

<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;pooling=false" 
    providerName="System.Data.SqlClient" ></add> 
</connectionStrings> 

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

는 하나의 <connectionStrings> 엔트리로 결합합니다.

<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;pooling=false" 
    providerName="System.Data.SqlClient" /> 
    <add name="Midterm.Properties.Settings.Database1ConnectionString" 
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+0

두 개의 태그를 병합하고 두 번째 빈 태그를 없앴습니다. 그러나 구성을 초기화하지 못했습니다. – MDHenry

1

configurationString에는 두 개의 섹션이 있습니다. 단 하나만 있으면됩니다

<connectionStrings> 
    <add name="database" connectionString="......."/> 
    <add name="Midterm.Properties.Settings.Database1ConnectionString" connectionString="..... " /> 
</connectionStrings> 
관련 문제