You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET无需安装Oracle客户端直连数据库及连接字符串报错问询

报错原因说明

你修改后的连接字符串删除了原有的Provider参数,OLEDB连接必须指定提供程序,所以才会抛出这个错误。但哪怕你补回Provider=MSDAORA参数,也没法实现免Oracle客户端的需求,因为MSDAORA是微软开发的老旧Oracle OLEDB提供程序,本身强依赖本地安装的Oracle客户端组件。


可行的免客户端方案(推荐)

使用Oracle官方托管驱动Oracle.ManagedDataAccess,该驱动是纯.NET实现的,不需要本地安装Oracle客户端,也不需要配置tnsnames.ora,完美适配你的需求,操作步骤如下:

  • 打开你的VB.NET项目,在Visual Studio 2019的NuGet包管理器中搜索安装Oracle.ManagedDataAccess(.NET Framework项目)或Oracle.ManagedDataAccess.Core(.NET Core/.NET 5+项目)
  • 替换原有代码中的数据库操作类:将原有的System.Data.OleDb命名空间下的OleDbConnection、OleDbCommand等类,替换为Oracle.ManagedDataAccess.Client命名空间下的OracleConnection、OracleCommand等对应类
  • 使用如下格式的连接字符串即可直接连接:
Data Source=10.1.1.12:1521/你的Oracle服务名;User Id=MyUser;Password=MyPass;

注意:需要将上面的你的Oracle服务名替换为实际的Oracle实例服务名,默认通常为ORCL,如果是用SID连接可以写成Data Source=10.1.1.12:1521/你的SID;


临时兼容方案(仍需Oracle客户端,仅解决当前报错)

如果你暂时不想替换驱动,只是要解决当前的编译报错,补回Provider参数并修正EZCONNECT格式即可:

Provider=MSDAORA;Data Source=//10.1.1.12:1521/你的服务名;Persist Security Info=True;Password=MyPass;User ID=MyUser

该方案仍然需要目标机器安装Oracle客户端,仅解决连接字符串的语法错误。


内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:51:00