通过网上了解到.net连接Oracle主要有3种方法。
(1)System.Data.OracleClient
微软的System.Data.OracleClient可以直接引用,但是VS会提示“System.Data.OracleClient.OracleConnection”已过时。
(2)Oracle.DataAccess.Client
也叫ODP.net,是Oracle提供的数据库访问类库,不用安装Oracle客户端,只需要在oracle安装目录下找到Oracle.DataAccess.dll添加引用,但是缺点是要区分x86/x64版本。
(3)Oracle.ManagedDataAccess.Client
也是Oracle提供的数据库访问类库,无需安装oracle客户端,也不需要区分x86/x64版本,直接引用Oracle.ManagedDataAccess.dll 即可。

下面是用使用Oracle.ManagedDataAccess.Client连接Oracle例子:
1、配置Oracle连接字符串
本次例子是WinForm,app.config的Oracle连接字符串配置如下,关键信息:IP地址、服务名、用户名、密码。

<add key="OracleConn" value="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User ID=user;Password=123456"/>

2、简单写了个数据库访问类OracelHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.ManagedDataAccess.Client;
using System.Data; namespace demo
{
public class OracelHelper
{
private static readonly string connectionString = System.Configuration.ConfigurationManager.AppSettings["OracleConn"].ToString(); public static OracleConnection GetConn()
{
var conn = new OracleConnection(connectionString);
conn.Open();
return conn;
} public static int ExecuteNonQuery(string sql)
{
using (var conn = GetConn())
{
var cmd = new OracleCommand(sql, conn);
int result = cmd.ExecuteNonQuery();
return result;
}
} public static int ExecuteScalar(string sql)
{
using (var conn = GetConn())
{
var cmd = new OracleCommand(sql, conn);
object o = cmd.ExecuteScalar();
return Convert.ToInt32(o.ToString());
}
} public static OracleDataReader ExecuteReader(string sql)
{
var conn = GetConn();
var cmd = new OracleCommand(sql, conn);
var myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
} public static DataSet ExecDataSet(string sql)
{
using (var conn = GetConn())
{
var cmd = new OracleCommand(sql, conn);
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
}
}

3、如果是使用Dapper,可参考上篇文章“.net4.0使用Dapper操作MySql”,部分代码稍微修改如下

(1)Dapper封装

 public class DapperHelper
{
public static OracleConnection OracleConnection()
{
string oracleConnectionStr = System.Configuration.ConfigurationManager.AppSettings["OracleConn"].ToString();
var connection = new OracleConnection(oracleConnectionStr);
connection.Open();
return connection;
}
}

(2)使用Dapper进行select查询

using (IDbConnection conn = DapperHelper.OracleConnection())
{
string sqlCommandStr = @"select * from user";
List<User> userList = conn.Query<User>(sqlCommandStr).ToList();
//todo
}

最新文章

  1. MongoDB学习笔记~数据模型属性为集合时应该为它初始化
  2. python中的str,unicode和gb2312
  3. Oracle汉字转拼音package
  4. Struts2 JSON
  5. IOS开发之网络编程开源类 Reachability应用
  6. linux的零碎使用
  7. 基于java的socket编程
  8. office2010官方下载 免费完整版.zip
  9. LNMP安装了哪些软件?安装目录在哪?
  10. Java根据字节数据判断文件类型
  11. SUP (SAP Mobile SDK 2.2) 连接 Sybase SQL Anywhere sample 数据库
  12. WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应
  13. js前端获取页面传递的参数
  14. 基于HTML5及WebGL的工控SCADA模拟飞机飞行
  15. 初试pyspider
  16. windows下数据库文件使用脚本同步到linux下的mysql数据库中
  17. onblur 事件
  18. scott用户不存在
  19. useradd语法2
  20. JS定义一个立即执行的可重用函数

热门文章

  1. SpringBoot启动项目时提示:Error:(3, 32) java: 程序包org.springframework.boot不存在
  2. 清新水彩追梦在路上述职报告通用PPT模板
  3. cookie --中间件
  4. SQL实用技巧:如何将表中某一列的部分数据合并到一行中
  5. 在标准实体特殊消息上注册插件及Dynamics CRM 2015中计算字段的使用
  6. Android MediaPlayer 在 6.0 以上版本使用倍速播放功能说明
  7. 2019 DevOps 必备面试题——持续集成篇
  8. Octave移动数据
  9. Apache限制虚拟主机最大连接数和带宽
  10. deepin安装nginx失败记录