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?
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)
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.
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
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();
}
}