C# 连接 Oracle 数据库
使用工具 Visual Studio 2019,编写的是控制台应用程序,如果是其他程序(ASP.NET)都是可以的哈。在oracle安装目录下找到Oracle.Dataaccess.dll 添加引用:添加引用dll文件例如:D:\app\oracle\product\11.2.0\dbhome_1\ODE.NET\bin\2.x(客户端)D:\app\oracle\product\11.2.0\d
·
使用工具 Visual Studio 2019,编写的是控制台应用程序,如果是其他程序(ASP.NET)都是可以的哈。
在oracle安装目录下找到Oracle.Dataaccess.dll 添加引用:
using Oracle.DataAccess.Client;
添加引用dll文件
例如:
D:\app\oracle\product\11.2.0\dbhome_1\ODE.NET\bin\2.x(客户端)
D:\app\oracle\product\11.2.0\dbhome_1\ODP.NET\bin\2.x(服务器)
首先连接数据库应该有相应的 ConnectionString连接池值的有效名称
属性名称 | 中文释义 | 样例值 |
---|---|---|
Data Source | 数据源 | "Data Source=(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)(SID=ORCLSID)));" |
User Id | 用户ID | "User Id=scott;" |
Password | 密码 | "Password=tiger;" |
详细说明:
- Data Source指定Oracle服务器的地址和端口号,以及服务名称。
- host: 指定连接的ip地址,若是本地数据库,
192.168.1.100换成
localhost即可。 - Port: 指定端口号,默认1521即可。
- SERVICE_NAME: 为全局数据库名称
- SDI: 为Oracle 服务标识符
除了用户名和密码以外,ip地址没错的话,我认为最重要的就是SID和SERVICE_NAME
它们在安装的时候你便会设置
比如我使用本地的hr用户查询EMPLOYEES表的员工个数为例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.DataAccess.Client;
namespace ConsoleApp1
{
class Program
{
static void Main()
{
string user = "hr";
string password = "hr";
string dataSource = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=db11g01)(SID=DB11GSID)))";
string connString = $"User Id={user};Password={password};Data Source={dataSource}";
using (OracleConnection conn = new OracleConnection(connString))
{
try
{
conn.Open();
Console.WriteLine("Connection established successfully.");
string query = "SELECT COUNT(*) FROM EMPLOYEES";
using (OracleCommand cmd = new OracleCommand(query, conn))
{
int employeeCount = Convert.ToInt32(cmd.ExecuteScalar());
Console.WriteLine("Total number of employees: " + employeeCount);
}
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
Console.ReadKey();
}
}
}
}
输出结果为
和我sql plus查询是一致的
更多推荐
已为社区贡献2条内容
所有评论(0)