Reputation: 1
I'm making a c# program that takes input from a windows form app into a localDB. I looked through tutorials on app.config and the actual calls, and also looked at other questions here and haven't found anything that fixed it. Specifically if i dont use a try/catch it completely breaks at the line "SqlCommand cmd = conn.CreateCommand();person newPerson = new person(FirstNameBox.Text, phoneBox.Text, emailBox.Text, LastNameBox.Text);" It does say "the configuration element is not declared" but I haven't seen anything that shows its wrong?
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
<?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>
Upvotes: 0
Views: 367
Reputation: 216353
You have two sections for configurationStrings. You need to have only one
<connectionStrings>
<add name="database" connectionString="......."/>
<add name="Midterm.Properties.Settings.Database1ConnectionString" connectionString="..... " />
</connectionStrings>
Upvotes: 1
Reputation: 150208
You have two different <connectionStrings>
nodes in your configuration file
<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>
Combine them into a single <connectionStrings>
entry.
<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>
Upvotes: 0