VB.NET连接字符串(Web.Config,App.Config)

Cor*_*las 7 vb.net connection-string

真的有连接字符串的烦人时间.

我在一个解决方案中共同拥有两个项目.Web表单应用程序充当表示层,以及支持它的类库,它将从数据库发送和接收数据.  

- 类库项目中的员工类 -

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
Run Code Online (Sandbox Code Playgroud)

目前该应用程序告诉我它无法访问我试图存储在配置文件中以便快速重复访问的"My_ConnectionString":

<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>
Run Code Online (Sandbox Code Playgroud)

web.config是Web表单项目的一部分,而不是类库,这些项目是否无法相互"交谈"?我是否需要将web/app配置文件添加到类库以在该项目中存储连接字符串?

G. *_*nev 18

不清楚My_ConnectionString你的例子中的来源,但试试这个

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

像这样

Dim DBConnection As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("My_ConnectionString").ConnectionString)
Run Code Online (Sandbox Code Playgroud)

  • 我还建议使用`Using`块来确保连接得到妥善处理. (4认同)
  • 您还可以添加对`System.Configuration`的引用,使用`Imports System.Configuration`导入它,然后使用较短的`ConfigurationManager.ConnectionStrings("My_ConnectionString").ConnectionString`访问它. (3认同)
  • 'ConfigurationManager' 不是 'Configuration' 的成员我觉得我在某处犯了一个错误...... (2认同)
  • @Corgalas - 您是否在项目(DLL)中添加了对System.Configuration的引用并添加了`Imports System.Configuration`语句? (2认同)

Dav*_*ave 5

如果它是.mdf数据库并且连接字符串在创建时已保存,则应该能够通过以下方式访问它:

    Dim cn As SqlConnection = New SqlConnection(My.Settings.DatabaseNameConnectionString)
Run Code Online (Sandbox Code Playgroud)

希望能帮助别人.