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