一,在配置文件中,存放 oracle 连接字符串
1. 连接字符串:
"data source=127.0.0.1/TEST;user id=xxx;password=xxx;provider='OraOLEDB.Oracle'"
2.provider[提供商],有两种:'OraOLEDB.Oracle' 为 oracle 公司提供,'msdaora'为微软公司提供.
二,连接方式
1. NET 4.0 之前,可采用 System.Data.OracleClient 类库中的访问数据库的方式
string connectionString = "data source=127.0.0.1/TEST;user id=xxx;password=xxx";
OracleConnection conn = new OracleConnection(connectionString);
conn.Open();
OracleDataAdapter oda = new OracleDataAdapter("SELECT * FROM USER", conn);
DataTable dtDataSource = new DataTable();
oda.Fill(dtDataSource);
2. NET4.0 以后,微软终止了 System.Data.OracleClient,可采用 System.Data.OleDb 类库中的相应方式[也可采用 OracleClient,在添加 dll 引用时要将目标框架设置为. net4.0]
如果采用 System.Data.OleDb 方式,则需要连接字符串中写出提供商 provider='OraOLEDB.Oracle'
3. 如果客户端是 AMERICAN_AMERICA.ZHS16GBK 编码
服务器是西文编码,则采用 oledb 方式连接数据库,连接串中加入 provider='MSDAORA.1',这样查询出来的数据不会出现乱码[使用 oledb 连接数据库连接串中必须写 provider]
4. 含 blob 字段,采用 OracleClient 方式,无需写 provider;如果用 oledb 方式,则提供商采用'OraOLEDB.Oracle' ,否则 blob 字段获取会有异常
Clob,blob 都可以用来存储文件的比特流,也可以存储超过 4000 的字符串
存储时该字段用 oracle 参数来存储,取出时,与其他类型字段一样.只是取出来之后转换成存储的类型
5. 如果客户端,服务器都是 AMERICAN_AMERICA.ZHS16GBK 编码则有两种方式:
1.oledb 方式,连接串中加入 provider='OraOLEDB.Oracle'
2.oracleClient 方式连接数据库,连接串中不添加 provider
三,如果是 win7 系统,可能存在以下问题:
1. 正确书写连接方式后,扔无法正常连接,手动打开数据库之后不报错.这很可能是权限设置问题.设置为管理员身份运行即可.
来源: http://www.jianshu.com/p/0605f96735f4