一:通过System.Data.OracleClient
1. 添加命名空间System.Data.OracleClient引用
//在解决方案资源管理器里引用右键单击引用项找到添加
- using System.Data.OracleClient;
-
string connString = “User ID=HUMAN;Password=123456;Data Source=HR;”;
//HR是自己创建的数据库实例,HUMAN是创建的用户
OracleConnection conn = new OracleConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
注:这种情况下连接可能会出现BadImageFormatException报错
在我是在windows10系统上安装的64位的Oracle 导致VS2012 项目访问 数据库时产生了 “尝试加载 oracle客户端库时引生BadImageFormatExceiption。
在项目 “属性” 中选择 “生成”,把‘生成’ 勾选64位,同理如果安装的32位客户端则把首选32位勾上就行
二:通过System.Data.OleDb和Oracle公司的驱动
1. 添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString = “Provider=OraOLEDB.Oracle.1;User ID=HUMAN;Password=123456;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = HR)))”;
OleDbConnection conn = new OleDbConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
注:这种情况下连接可能会出现的报错
1.C#程序中需要以Provider=OraOLEDB.Oracle.1方式访问oracle数据库。但程序执行时报异常:未在本地计算机注册“OraOLEDB.Oracle.1”提供程序
解决办法:服务器ORACLE为11g,虽然安装时选择了Oracle Data Provider for .net 和Oracle Provider for OLE DB。但是还是需要人工命令行注册一下
regsvr32 “E:\oracle11g\product\11.2.0\dbhome_1\BIN\OraOledb11.dll”
2.提示未找到 Oracle 客户端和网络组件,找到Oracle客户端安装目录,右键属性找到 “安全” 项添加Everyone用户并赋予完全控制的权限,然后应用确定,重新启动系统
//两种问题都有可能是客户端安装出错,如果参考方法不行,建议完全卸载客户端重新安装,建议安装32位客户端,不知道怎么完全卸载自行百度