如何用VB连接Oracle数据库
- 数据库
- 2025-05-29
- 6
使用ADO.NET连接Oracle
ADO.NET是.NET框架中用于访问数据的核心组件,通过Oracle.ManagedDataAccess.Client命名空间实现连接。
步骤说明:
-
安装Oracle数据提供程序
通过NuGet包管理器安装Oracle.ManagedDataAccess,或从Oracle官网下载ODP.NET(Oracle Data Provider for .NET)并安装。
-
编写连接字符串
连接字符串需包含服务器地址、端口、服务名、用户名和密码。
Dim connString As String = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=your_host)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=your_service_name)));User Id=your_username;Password=your_password;" -
建立连接并测试
Imports Oracle.ManagedDataAccess.Client Public Sub ConnectToOracle() Using conn As New OracleConnection(connString) Try conn.Open() MessageBox.Show("连接成功!") Catch ex As OracleException MessageBox.Show("错误: " & ex.Message) End Try End Using End Sub
优点:官方推荐方式,性能高,支持Oracle高级功能(如连接池、事务管理)。
通过ODBC驱动连接
若环境限制无法安装ODP.NET,可通过ODBC(开放数据库连接)实现。
步骤说明:
-
配置ODBC数据源

- 在Windows中打开“ODBC数据源管理器”(64位或32位需对应程序)。
- 添加系统DSN,选择Oracle驱动,填写数据库信息。
-
使用OdbcConnection类连接
Imports System.Data.Odbc Public Sub ConnectViaODBC() Dim odbcConnString As String = "DSN=your_dsn_name;Uid=your_username;Pwd=your_password;" Using conn As New OdbcConnection(odbcConnString) Try conn.Open() MessageBox.Show("ODBC连接成功!") Catch ex As OdbcException MessageBox.Show("错误: " & ex.Message) End Try End Using End Sub
适用场景:兼容旧系统,但性能低于ODP.NET。
使用第三方库(如Devart)
第三方库如Devart的dotConnect for Oracle提供更简化的API。
步骤示例:
-
安装Devart的NuGet包:Devart.Data.Oracle。

-
代码实现:
Imports Devart.Data.Oracle Public Sub ConnectWithDevart() Dim devartConnString As String = "User Id=your_username;Password=your_password;Server=your_host;Service=your_service_name;" Using conn As New OracleConnection(devartConnString) Try conn.Open() MessageBox.Show("Devart连接成功!") Catch ex As OracleException MessageBox.Show("错误: " & ex.Message) End Try End Using End Sub
-
ORA-12154: TNS无法解析连接标识符
- 检查tnsnames.ora文件配置是否正确。
- 确保Oracle客户端或ODP.NET已正确安装。
-
连接超时
- 增加连接字符串中的Connection Timeout参数(如Connect Timeout=30)。
-
权限不足
- 确保数据库用户拥有CREATE SESSION权限。
- 加密敏感信息:避免在代码中明文存储密码,使用ConfigurationManager或加密工具。
- 使用连接池:通过Pooling=true;Min Pool Size=5;Max Pool Size=50;优化性能。
- 定期更新驱动:从Oracle官网获取最新版本的ODP.NET。
优点:简化配置,支持Entity Framework等高级特性。
常见问题与解决方案
安全性建议
引用说明
本文参考了Oracle官方文档《ODP.NET Developer’s Guide》与微软.NET框架文档,确保内容的准确性与权威性。
