VB.NET Connection string (Web.Config, App.Config)

107,325

Solution 1

Not clear where My_ConnectionString is coming from in your example, but try this

System.Configuration.ConfigurationManager.ConnectionStrings("My_ConnectionString").ConnectionString

like this

Dim DBConnection As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("My_ConnectionString").ConnectionString)

Solution 2

If it's a .mdf database and the connection string was saved when it was created, you should be able to access it via:

    Dim cn As SqlConnection = New SqlConnection(My.Settings.DatabaseNameConnectionString)

Hope that helps someone.

Solution 3

Connection in APPConfig

<connectionStrings>
  <add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

In Class.Cs

public string ConnectionString
{
    get
    {
        return System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    }
}
Share:
107,325
Corgalas
Author by

Corgalas

Updated on July 09, 2022

Comments

  • Corgalas
    Corgalas almost 2 years

    Really having an annoying time with connection strings.

    I have two projects together in a single solution. A Web forms application acting as the presentation layer, and a class library supporting it which will send and receive data from a database.  

    -- The Employee Class within the Class Library Project --

    Friend Class Employee
    
    Public Function GetEmployees() As DataSet
    
        Dim DBConnection As New SqlConnection(My_ConnectionString)
        Dim MyAdapter As New SqlDataAdapter("exec getEmployees", DBConnection)
    
        Dim EmployeeInfo As DataSet
        MyAdapter.Fill(EmployeeInfo, "EmployeeInfo")
    
        Return EmployeeInfo
    
    End Function
    
    End Class
    

    Currently the application is telling me it cannot access "My_ConnectionString" which I have attempted to store within a config file for quick repeated access:

    <configuration>
    
    <system.web>
      <compilation debug="true" strict="false" explicit="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5"  />
    </system.web>
    
     <connectionStrings>
       <add name="My_ConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=My_DB;Integrated Security=True;"/>
     </connectionStrings>
    
    </configuration>
    

    The web.config is part of the web form project and not the class library, are these projects unable to 'talk' to each other? Do I need to add a web / app config file to the class library to store a connection string within that project?

  • Tim
    Tim over 11 years
    You can also add a reference to System.Configuration, import it with Imports System.Configuration and then access it with the shorter ConfigurationManager.ConnectionStrings("My_ConnectionString"‌​).ConnectionString.
  • Tim
    Tim over 11 years
    I would also suggest using a Using block to ensure the connection is properly disposed of.
  • Corgalas
    Corgalas over 11 years
    'ConfigurationManager' is not a member of 'Configuration' I feel like I've made a mistake somewhere...
  • Tim
    Tim over 11 years
    @Corgalas - Did you add a reference to System.Configuration in your project (the DLL) and add an Imports System.Configuration statement?
  • Corgalas
    Corgalas over 11 years
    Forgot the add the reference to the project. Thanks Tim!
  • cramopy
    cramopy over 8 years
    Would you please add some explanation to your code? Thanks!
  • Phil3992
    Phil3992 over 5 years
    This connection string has hard coded entries,it's not getting them from the .config. What if you need to point to a different server? With this code the application would need deploying with the changes. With .config it can be changed in the background
  • SRoy
    SRoy over 5 years
    this answer solved my problem and I think this is the best practice to declare connection sting by it's name. it helps migration process
  • Brandon Barkley
    Brandon Barkley over 3 years
    I have never understood why System.Configuration isn't included by default.