一、在配置文件中,存放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.正确书写连接方式后,扔无法正常连接,手动打开数据库之后不报错。这很可能是权限设置问题。设置为管理员身份运行即可。