C#不装Oracle客户端,连接数据库的方法
前几天临时碰到个项目需求,让从Oracle数据库中直接查询视图数据。
按照正常的模式,首先问清楚Oracle版本,然后安装Oracle客户端,更改“listener.ora”监听文件,安装PLSQL,连接、查询。
再在代码中引用“System.Data.OracleClient.dll”,配置连接字符串使用。
太麻烦了!
依稀记得之前有个方法可以不需要安装Oracle客户端,也不区分X86还是X64的方式,即使用Oracle官方提供的“Oracle.ManagedDataAccess.dll”,具体操作如下:
1、使用NuGet找到最新版的“Oracle.ManagedDataAccess”
2、代码中引用——using Oracle.ManagedDataAccess.Client;
3、连接数据库,执行查询语句
string sHISConn = "User Id=用户名;Password=密码;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=数据库IP)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=数据库名)))";
string sExeSql = string.Format("SELECT * FROM 视图名称 WHERE TO_DATE(PAYTIME,'yyyy-mm-dd hh24:mi:ss') > TO_DATE('{0}','yyyy-mm-dd hh24:mi:ss')", dtExeDate.AddDays(1).ToString("yyyy-MM-dd"));
DataSet ds = new DataSet();
using (var conn = new OracleConnection(HISConn))
{
conn.Open();
OracleCommand cmd = new OracleCommand(sExeSql, conn);
OracleDataAdapter dap = new OracleDataAdapter(cmd);
dap.Fill(ds);
dap.Dispose();
conn.Close();
}
4、执行类语句用法类似,替换成相应的执行方法即可。
Done