c# 连接oracle

一、数据库驱动

oracle为c#提供了两种驱动:Oracle.DataAccess.dll与Oracle.ManagedDataAccess.dll

采用Oracle.ManagedDataAccess.dll

Oracle.DataAccess.dll需要使用到数据库客户端的dll。通常情况下本地Oracle客户端是64位,如果项目是32位的,那么就会出现32位和64位不兼容的问题。使用Oracle.ManagedDataAccess.dll,可采用无客户端连接的方式,只需要通过Nuget下载即可。

二、通过字符串配置

列出了部分支持的连接字符串属性:

字符串连接属性 描述 默认值
Connection Lifetime 连接的最短使用寿命(以秒为单位)。 0
Connection Timeout 等待池中的空闲连接的最短时间(以秒为单位)。 15
Context Connection

如果设置为true,则返回隐式数据库连接。仅在.NET存储过程中受支持

false
Data Source 连接数据库的属性,如HOST、PORT null
DBA Privilege 权限:SYSDBASYSOPER null
Max Pool Size 池中的最大连接数。 100
User Id Oracle用户名 null
Password 指定用户id的密码 null
Pooling 连接池 true

全部支持的字符串连接属性可参考oracle文档:https://docs.oracle.com/database/121/ODPNT/featConnecting.htm#ODPNT164

using System;
using Oracle.ManagedDataAccess.Client;
namespace demo
{
    class Program
    {
        public static void Main(String[] args)
        {
            //连接本地数据库 地址为127.0.0.1:1521 服务名为ORCL
            string config = @"Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCL)));User Id=scott;Password=123456;";
            //连接池
//            var pool = @"Min Pool Size = 10; Connection Lifetime = 100000; Connection Timeout = 60;
//Incr Pool Size=5; Decr Pool Size=2;";
//            config += pool;
            OracleConnection conn = new OracleConnection(config);
            conn.Open();
            Console.WriteLine("---------------连接到数据库---------------");
            conn.Clone();
            Console.WriteLine("---------------关闭数据库连接---------------");
            Console.WriteLine("输入任意键结束");
            Console.ReadKey();
        }
    }

}

 

你可能感兴趣的:(oracle,C#)