2013-03-16 5 views
6

Davvero avendo un tempo fastidioso con le stringhe di connessione.VB.NET Stringa di connessione (Web.Config, App.Config)

Ho due progetti insieme in un'unica soluzione. Un'applicazione di moduli Web che funge da livello di presentazione e una libreria di classi che la supporta che invierà e riceverà i dati da un database.

- la classe Employee nell'ambito del Progetto Libreria di classi -

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 

Attualmente l'applicazione mi sta dicendo che non può accedere a "My_ConnectionString", che ho tentato di memorizzare all'interno di un file di configurazione per l'accesso rapido ripetuto :

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

il web.config è parte del progetto modulo web e non la libreria di classi, sono questi i progetti in grado di 'parlare' gli uni agli altri? Devo aggiungere un file di configurazione web/app alla libreria di classi per memorizzare una stringa di connessione all'interno di quel progetto?

+0

dal codice sembra che si sta cercando di usare 'My_ConnectionString' per recuperare il valore dal tuo file di configurazione. Se ciò è corretto, ciò non funzionerà - è necessario recuperarlo dal file di configurazione in modo simile a @G. La risposta di Stoynev sotto. – Tim

+0

potrebbe essere utile http://www.connectionstrings.com/ – ajt

risposta

14

Non è chiaro dove My_ConnectionString proviene da nel tuo esempio, ma provare questo

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

come questo

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

È inoltre possibile aggiungere un riferimento a 'System.Configuration', importarlo con' Imports System.Configuration' e quindi accedervi con il più breve 'ConfigurationManager.ConnectionStrings ("My_ConnectionString"). ConnectionString'. – Tim

+3

Vorrei anche suggerire di utilizzare un blocco 'Using' per garantire che la connessione sia correttamente smaltita. – Tim

+0

'ConfigurationManager' non è un membro di 'Configuration' Mi sento come se avessi fatto un errore da qualche parte ... – Corgalas

4

Se si tratta di un database mdf e la stringa di connessione è stato salvato quando è stato creato, dovresti essere in grado di accedervi tramite:

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

Spero che aiuti qualcuno.

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

Vuoi aggiungere qualche spiegazione al tuo codice? Grazie! – cramopy

0

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