【发布时间】:2023-04-04 00:10:02
【问题描述】:
在 VB .NET 2019 中,我有一些代码可以连接到 Oracle 数据库:
Private Const connectionString = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;Data Source=someSource;User ID=someUser;Password=somePassword"
Public Function Connect() As Object
Connect = CreateObject("ADODB.Connection")
Connect.ConnectionString = connectionString
Connect.CursorLocation = 3
Connect.Open
...
End Function
此代码运行良好。现在我正在尝试将 connectionString 定义移动到 app.config 文件中。
app.config:
<connectionStrings>
<add name="TestConnection" connectionString="Provider=OraOLEDB.Oracle.1;Persist Security Info=False;Data Source=someSource;User ID=someUser;Password=somePassword" />
</connectionStrings>
在我的代码中,我只是改变了这个:
Connect.ConnectionString = connectionString
作者:
Connect.ConnectionString = ConfigurationManager.ConnectionStrings("TestConnection").ConnectionString
当我运行代码时,我收到以下错误: System.NullReferenceException:“对象引用未设置为对象的实例。” System.Configuration.ConnectionStringSettingsCollection.this[string].get 返回 Nothing。
我不知道我做错了什么
【问题讨论】:
-
如果是 VB.NET 那么为什么会有
CreateObject行呢?如果它正在访问 Oracle,那么为什么要使用 ADODB 呢?这是从 Excel VBA 或类似文件中复制的内容吗? -
代码是从 vbscript 迁移而来的
-
好的,那你能用VB.NET重写吗?还要检查您的输出文件夹(exe 所在的位置)是否包含 app.config 文件并且它具有正确的
connectionStrings节点 -
是的,我可以重写,但这并不能解决我当前无法从配置文件中检索连接字符串的问题。输出是一个 dll 文件 (Connections.dll),我在输出目录中有一个 Connections.dll.config 文件。对吗?
-
您的项目类型是什么?您是否拥有与主应用程序分开的类库中的数据访问权限?配置文件需要在主可执行项目中,而不是类库中。
标签: vb.net app-config adodb