2
Answers

C# use connection string from app.config

scampercat

scampercat

12y
4.8k
1
Can you tell me how to use the connection string value from the app.config file and not the hard codee values?

In a C# 2008 desktop/console application, I created the connections to the database using linq to sql. Everything worked fine until I moved the
code to point to a different database. Somehow the original database connections are being saved and the values from the app.config file
are not being used.

I tried to do what the following link: http://refat38.wordpress.com/2012/01/30/unpick-linq-to-sql-connection-string-from-application-settings/,
said to do however, I do not know what the following statement means to do from this link:
Now Right Click and open the Properties on your DAL or project containing your LINQ to SQL classes and remove the connection string "Application Setting" reference on the Settings tab.

I also tried to add the following to the *.designer.cs file:
base(ConfigurationManager.ConnectionStrings["esample.Properties.Settings.devtestConnectionString"].ConnectionString,  mappingSource) and attached
a system.configuration file as a reference.


1. The following code is from the app.config file:
<connectionStrings>
   
    <add name="esample.Properties.Settings.devtestConnectionString"
      connectionString="Data Source=dev;Initial Catalog=devtest;Integrated Security=True"
      providerName="System.Data.SqlClient" />   
  </connectionStrings>

2. The following is from the settings.settings file
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="esample.Properties" GeneratedClassName="Settings">
  <Profiles />
  <Settings>
    <Setting Name="devtestConnectionString" Type="(Connection string)" Scope="Application">
      <DesignTimeValue Profile="(Default)"><?xml version="1.0" encoding="utf-16"?>
<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ConnectionString>Data Source=dev;Initial Catalog=devtest;Integrated Security=True</ConnectionString>
  <ProviderName>System.Data.SqlClient</ProviderName>
</SerializableConnectionString></DesignTimeValue>
      <Value Profile="(Default)">Data Source=dev;Initial Catalog=devtest;Integrated Security=True</Value>
    </Setting>
   </Settings>
</SettingsFile>

The following is from the settings.designer.cs file
namespace esample.Properties {
   
   
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
       
        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
       
        public static Settings Default {
            get {
                return defaultInstance;
            }
        }
       
        [global::System.Configuration.ApplicationScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=dev;Initial Catalog=devtest;Integrated Security=True")]
        public string devtestConnectionString {
            get {
                return ((string)(this["devtestConnectionString"]));
            }
        }
       
       
    }
}

The following is from the *.designer.cs

namespace esample
{
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;
        using System.Configuration;


[System.Data.Linq.Mapping.DatabaseAttribute(Name="devtest")]
public partial class esampleDataContext : System.Data.Linq.DataContext
{

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();


public esampleDataContext() :

        base(global::esample.Properties.Settings.Default.devtestConnectionString, mappingSource)
        //base(ConfigurationManager.ConnectionStrings["esample.Properties.Settings.devtestConnectionString"].ConnectionString,  mappingSource)
          {
OnCreated();
}

public esampleDataContext(string connection) :
base(connection, mappingSource)
{
OnCreated();
}

Can you show me code and/or tell me how to solve this problem so I can obtain the value from the app.config file?
Answers (2)