.net连接Oracle
2024-08-28 03:55:16
通过网上了解到.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
}
最新文章
- MongoDB学习笔记~数据模型属性为集合时应该为它初始化
- python中的str,unicode和gb2312
- Oracle汉字转拼音package
- Struts2 JSON
- IOS开发之网络编程开源类 Reachability应用
- linux的零碎使用
- 基于java的socket编程
- office2010官方下载 免费完整版.zip
- LNMP安装了哪些软件?安装目录在哪?
- Java根据字节数据判断文件类型
- SUP (SAP Mobile SDK 2.2) 连接 Sybase SQL Anywhere sample 数据库
- WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应
- js前端获取页面传递的参数
- 基于HTML5及WebGL的工控SCADA模拟飞机飞行
- 初试pyspider
- windows下数据库文件使用脚本同步到linux下的mysql数据库中
- onblur 事件
- scott用户不存在
- useradd语法2
- JS定义一个立即执行的可重用函数
热门文章
- SpringBoot启动项目时提示:Error:(3, 32) java: 程序包org.springframework.boot不存在
- 清新水彩追梦在路上述职报告通用PPT模板
- cookie --中间件
- SQL实用技巧:如何将表中某一列的部分数据合并到一行中
- 在标准实体特殊消息上注册插件及Dynamics CRM 2015中计算字段的使用
- Android MediaPlayer 在 6.0 以上版本使用倍速播放功能说明
- 2019 DevOps 必备面试题——持续集成篇
- Octave移动数据
- Apache限制虚拟主机最大连接数和带宽
- deepin安装nginx失败记录