闲着没事自己写了一个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的更多相关文章

  1. java连接Oracle数据库

    Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...

  2. 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题

    起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...

  3. NodeJs连接Oracle数据库

    nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...

  4. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  5. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  6. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  7. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  8. [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下

    一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...

  9. 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error

    用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...

随机推荐

  1. uiautomatorviewer 优化定位符生成,支持生成Java,Python自动化代码

    项目介绍 二次开发 uiautomatorviewer 优化定位符生成,支持生成Java,Python自动化代码,修复自带工具画面有动态加载时截图失败问题,优化自带工具截图速度 ,实现类似录制脚本功能 ...

  2. grep 笔记

    -a :将 binary 文件以 text 文件的方式搜寻数据-c :计算找到 '搜寻字符串' 的次数-i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :反向选择,亦即显示出没有 ...

  3. c# 使用资源文件

    1.新建项目 2.新建资源文件 3. 代码中使用嵌入资源 using System;using System.Collections.Generic;using System.Text;using S ...

  4. 包建强的培训课程(2):Android与设计模式

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  5. 大叔学ML第三:多项式回归

    目录 基本形式 小试牛刀 再试牛刀 调用类库 基本形式 上文中,大叔说道了线性回归,线性回归是个非常直观又简单的模型,但是很多时候,数据的分布并不是线性的,如: 如果我们想用高次多项式拟合上面的数据应 ...

  6. IDEA环境下GIT操作浅析之二-idea下分支操作相关命令

    上次写到<idea下仓库初始化与文件提交涉及到的基本命令>,今天我们继续写IDEA环境下GIT操作之二--idea下分支操作相关命令以及分支创建与合并. 1.idea 下分支操作相关命令 ...

  7. electron-builder 由于网络原因无法下载问题解决

    electron-builder 由于网络原因无法下载问题解决 在package.json的build中添加electron的镜像 "electronDownload": { &q ...

  8. 【详记MySql问题大全集】三、安装之后没有my.ini配置文件怎么办

    系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 之前说过,Windows操作系统中,我们安装M ...

  9. flex布局常见用法小结

    1,display:flex 这个在父容器中声明: 2,flex-direction:row / column 默认为横向,也在父容器中设置,定义flex布局的主轴方向:一条轴为主轴,那么另一条轴自然 ...

  10. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]h ...