2013-03-16 9 views
6

Wirklich eine nervige Zeit mit Verbindungszeichenfolgen.VB.NET Verbindungszeichenfolge (Web.Config, App.Config)

Ich habe zwei Projekte in einer einzigen Lösung. Eine Webformularanwendung, die als Präsentationsebene fungiert, und eine Klassenbibliothek, die diese unterstützt, die Daten aus einer Datenbank sendet und empfängt.

- Die Mitarbeiter der Klasse innerhalb der Klassenbibliothek Projekt -

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 

Derzeit ist die Anwendung sagt mir, es nicht „My_ConnectionString“ zugreifen können, die ich versucht haben, für den schnellen wiederholten Zugriff innerhalb einer Konfigurationsdatei zu speichern :

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

die web.config Teil des Web-Formular Projektes und nicht die Klassenbibliothek, sind diese Projekte nicht in der Lage zu ‚sprechen‘ miteinander? Muss ich der Klassenbibliothek eine Web-/App-Konfigurationsdatei hinzufügen, um eine Verbindungszeichenfolge in diesem Projekt zu speichern?

+0

aus dem Code sieht es aus wie Sie versuchen zu verwenden 'My_ConnectionString' den Wert abzurufen aus Ihrer Konfigurationsdatei. Wenn das korrekt ist, funktioniert das nicht - Sie müssen es aus der Konfigurationsdatei ähnlich wie @G abrufen. Stoynews Antwort unten. – Tim

+0

das könnte nützlich sein http://www.connectionstrings.com/ – ajt

Antwort

14

nicht klar, wo My_ConnectionString aus in Ihrem Beispiel kommen, aber versuchen, diese

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

wie diese

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

Sie können auch einen Verweis auf 'System.Configuration' hinzufügen, importieren Sie es mit' Imports System.Configuration' und greifen Sie dann mit dem kürzeren 'ConfigurationManager.ConnectionStrings ("My_ConnectionString"). ConnectionString'. – Tim

+3

Ich würde auch vorschlagen, einen 'Using' Block zu verwenden, um sicherzustellen, dass die Verbindung ordnungsgemäß entsorgt wird. – Tim

+0

'ConfigurationManager' ist kein Mitglied von 'Konfiguration' Ich habe das Gefühl, irgendwo einen Fehler gemacht zu haben ... – Corgalas

4

Wenn es eine MDF- Datenbank ist und die Verbindungszeichenfolge gespeichert wurde, wenn es erstellt wurde, sollten Sie darauf zugreifen können:

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

Hoffe, dass jemand hilft.

0
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

Würden Sie bitte Ihrem Code eine Erklärung hinzufügen? Vielen Dank! – cramopy

0

Anschluss 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(); 
    } 
} 
Verwandte Themen