c#连接oracle数据库 DBHelper
闲着没事自己写了一个OracleHelper类,希望大神给点建议优化
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.OracleClient; namespace Common
{
public class DBHelper
{
private string connectionstring { get; set; } = System.Configuration.ConfigurationManager.ConnectionStrings["cms_mh"].ConnectionString; public DBHelper()
{
OpenConnection();
} /// <summary>
/// 根据配置节读取连接数据库
/// </summary>
/// <param name="key">需要连接的数据库</param>
public DBHelper(string key)
{
this.connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings[key].ConnectionString;
OpenConnection();
} /// <summary>
/// 定义Oracle连接
/// </summary>
private OracleConnection conn { get; set; } private OracleCommand cmd;
/// <summary>
/// 打开连接
/// </summary>
public void OpenConnection()
{
if (conn == null)
conn = new OracleConnection(connectionstring);
if (conn.State == ConnectionState.Closed)
conn.Open();
} /// <summary>
/// 构建返回Command
/// </summary>
/// <param name="cmdText">CommandText</param>
/// <param name="cmd">需要返回的Command</param>
/// <param name="cmdType">执行类型</param>
/// <param name="param">参数列表</param>
public void BuilderCommand(string cmdText, out OracleCommand cmd, CommandType cmdType, params OracleParameter[] param)
{
cmd = new OracleCommand();
cmd.Connection = conn;
cmd = conn.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
foreach (var item in param)
{
cmd.Parameters.Add(item);
}
} /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedName">存储过程名称</param>
/// <param name="param">参数列表</param>
/// <returns>返回执行成功条数</returns>
public int ExecuteStored(string storedName, params OracleParameter[] param)
{
BuilderCommand(storedName, out cmd, CommandType.StoredProcedure, param);
return cmd.ExecuteNonQuery();
} /// <summary>
/// 获取DataSet
/// </summary>
/// <param name="cmdText">执行语句</param>
/// <returns>DataSet</returns>
public DataSet GetDateSet(string cmdText, params OracleParameter[] param)
{
using (OracleDataAdapter _da = new OracleDataAdapter(cmdText, conn))
{
DataSet ds = new DataSet();
_da.Fill(ds);
return ds;
}
} /// <summary>
/// 获取Table
/// </summary>
/// <param name="cmdText">执行语句</param>
/// <returns>DataTable</returns>
public DataTable GetTable(string cmdText)
{
return GetDateSet(cmdText).Tables[];
} /// <summary>
/// 执行sql
/// </summary>
/// <param name="cmdText">执行语句</param>
/// <param name="param">执行所需参数</param>
/// <returns>成功执行数</returns>
public int ExecuteSql(string cmdText, params OracleParameter[] param)
{
OracleCommand cmd = new OracleCommand();
BuilderCommand(cmdText, out cmd, CommandType.Text, param);
return cmd.ExecuteNonQuery();
} /// <summary>
/// 构建DataReader
/// </summary>
/// <param name="cmdText">执行语句</param>
/// <param name="param">执行所需参数</param>
/// <returns>DataReader</returns>
public OracleDataReader BuilderDataReader(string cmdText, params OracleParameter[] param)
{
BuilderCommand(cmdText, out cmd, CommandType.Text, param);
return cmd.ExecuteReader();
}
}
}
c#连接oracle数据库 DBHelper的更多相关文章
- java连接Oracle数据库
Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...
- 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题
起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...
- NodeJs连接Oracle数据库
nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- 用VS连接oracle数据库时ORA-12504错误
在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...
- ASP.NET连接Oracle数据库的步骤详解(转)
ASP.NET连接Oracle数据库的步骤详解 本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助. 在用ASP.NET开发应用程序时, ...
- 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题
在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...
- [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下
一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...
- 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...
随机推荐
- uiautomatorviewer 优化定位符生成,支持生成Java,Python自动化代码
项目介绍 二次开发 uiautomatorviewer 优化定位符生成,支持生成Java,Python自动化代码,修复自带工具画面有动态加载时截图失败问题,优化自带工具截图速度 ,实现类似录制脚本功能 ...
- grep 笔记
-a :将 binary 文件以 text 文件的方式搜寻数据-c :计算找到 '搜寻字符串' 的次数-i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :反向选择,亦即显示出没有 ...
- c# 使用资源文件
1.新建项目 2.新建资源文件 3. 代码中使用嵌入资源 using System;using System.Collections.Generic;using System.Text;using S ...
- 包建强的培训课程(2):Android与设计模式
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 大叔学ML第三:多项式回归
目录 基本形式 小试牛刀 再试牛刀 调用类库 基本形式 上文中,大叔说道了线性回归,线性回归是个非常直观又简单的模型,但是很多时候,数据的分布并不是线性的,如: 如果我们想用高次多项式拟合上面的数据应 ...
- IDEA环境下GIT操作浅析之二-idea下分支操作相关命令
上次写到<idea下仓库初始化与文件提交涉及到的基本命令>,今天我们继续写IDEA环境下GIT操作之二--idea下分支操作相关命令以及分支创建与合并. 1.idea 下分支操作相关命令 ...
- electron-builder 由于网络原因无法下载问题解决
electron-builder 由于网络原因无法下载问题解决 在package.json的build中添加electron的镜像 "electronDownload": { &q ...
- 【详记MySql问题大全集】三、安装之后没有my.ini配置文件怎么办
系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 之前说过,Windows操作系统中,我们安装M ...
- flex布局常见用法小结
1,display:flex 这个在父容器中声明: 2,flex-direction:row / column 默认为横向,也在父容器中设置,定义flex布局的主轴方向:一条轴为主轴,那么另一条轴自然 ...
- Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]h ...