web-dev-qa-db-fra.com

Chaîne de connexion VB.NET (Web.Config, App.Config)

Vraiment avoir un temps agaçant avec les chaînes de connexion.

J'ai deux projets ensemble dans une solution unique. Une application de formulaires Web agissant en tant que couche de présentation et une bibliothèque de classes la prenant en charge qui enverront et recevront des données d'une base de données .

- La classe des employés dans le projet de bibliothèque de classes -

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

Actuellement, l'application me dit qu'elle ne peut pas accéder à "My_ConnectionString" que j'ai tenté de stocker dans un fichier de configuration pour un accès répété rapide:

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

Le composant web.config fait partie du projet de formulaire Web et non de la bibliothèque de classes. Ces projets sont-ils incapables de "parler" les uns aux autres? Dois-je ajouter un fichier de configuration Web/app à la bibliothèque de classes pour stocker une chaîne de connexion dans ce projet?

6
Corgalas

Vous ne savez pas d'où provient My_ConnectionString dans votre exemple, mais essayez ceci

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

comme ça

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

S'il s'agit d'une base de données .mdf et que la chaîne de connexion a été enregistrée lors de sa création, vous devriez pouvoir y accéder via:

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

J'espère que ça aide quelqu'un.

5
Dave
Public Function connectDB() As OleDbConnection

        Dim Con As New OleDbConnection
        'Con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=" & DBNAME & ";Data Source=" & DBSERVER & ";Pwd=" & DBPWD & ""
        Con.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBNAME;Data Source=DBSERVER-TOSH;User ID=Sa;Pwd= & DBPWD"
        Try
            Con.Open()
        Catch ex As Exception
            showMessage(ex)
        End Try
        Return Con
    End Function
0
sameer pm

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

En classe.Cs

public string ConnectionString
{
    get
    {
        return System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    }
}
0
sameer pm