Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET连接字符串(Web.Config、App.Config)_Vb.net_Connection String - Fatal编程技术网

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

VB.NET连接字符串(Web.Config、App.Config),vb.net,connection-string,Vb.net,Connection String,真的有一个恼人的时间与连接字符串 我在一个解决方案中有两个项目。一个Web表单应用程序充当表示层,一个支持它的类库将从数据库发送和接收数据。 --类库项目中的Employee类-- 当前,应用程序告诉我它无法访问“My_ConnectionString”,我已尝试将其存储在配置文件中,以便快速重复访问: <configuration> <system.web> <compilation debug="true" strict="false" explicit

真的有一个恼人的时间与连接字符串

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

--类库项目中的Employee类--

当前,应用程序告诉我它无法访问“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>


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

不清楚在您的示例中我的连接字符串从何而来,但请尝试此方法

System.Configuration.ConfigurationManager.ConnectionString(“我的连接字符串”).ConnectionString

像这样

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

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

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

希望这对某人有所帮助。

APPConfig中的连接

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

我不知道这是否仍然是一个问题,但我更喜欢在代码中使用My.Settings

Visual Studio生成一个简单的类,其中包含用于从app.config文件读取设置的函数

您只需使用My.Settings.ConnectionString访问它

    Using Context As New Data.Context.DataClasses()
        Context.Connection.ConnectionString = My.Settings.ConnectionString
    End Using

从您的代码中,看起来您正试图使用
My_ConnectionString
从配置文件中检索值。如果这是正确的,那将不起作用-您需要以类似于下面@G.Stoynev的回答的方式从配置文件中检索它。这可能很有用,您还可以添加对
System.Configuration
的引用,使用
Imports System.Configuration导入它,然后使用较短的
ConfigurationManager.ConnectionString(“My_ConnectionString”)访问它.ConnectionString
。我还建议使用
using
块来确保正确处理连接。“ConfigurationManager”不是“Configuration”的成员。我觉得我在某个地方犯了一个错误…@Corgalas-您是否在项目(DLL)中添加了对System.Configuration的引用并添加一个
Imports System.Configuration
语句?添加对项目的引用。谢谢蒂姆!你能给你的代码加些解释吗?谢谢此连接字符串具有硬编码的条目,它无法从.config获取这些条目。如果您需要指向其他服务器,该怎么办?使用这段代码,应用程序将需要随更改一起部署。通过.config,可以在后台对其进行更改
public string ConnectionString
{
    get
    {
        return System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    }
}
    Using Context As New Data.Context.DataClasses()
        Context.Connection.ConnectionString = My.Settings.ConnectionString
    End Using