using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;

namespace CRM.RCMDLL
{
public class OraclHelper
{

public OleDbTransaction MyTransaction;
public OleDbConnection MyConnection;
public OleDbCommand MyCommand;
//数据库连接关键字
public readonly string strOledbCon;
public OraclHelper()
{
//public static readonly string connString = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
//System.Configuration.ConfigurationManager.AppSettings["EmailFrom"]
strOledbCon = System.Configuration.ConfigurationManager.AppSettings["DBConnectionString"];
MyConnection = new OleDbConnection(strOledbCon);
}
public OraclHelper(string as_ConnectString) {
strOledbCon = System.Configuration.ConfigurationManager.AppSettings[as_ConnectString];
MyConnection = new OleDbConnection(strOledbCon);
}

/// <summary>
/// 读取数据表
/// </summary>
/// <param name="as_sqlstr">sql语句</param>
/// <returns></returns>
public OleDbDataReader GetDR(string as_sqlstr)
{
as_sqlstr = ChangeSQLStatement(as_sqlstr);

MyCommand = new OleDbCommand(as_sqlstr, MyConnection);

MyCommand.CommandTimeout = 600;

MyConnection.Open();
OleDbDataReader dr = MyCommand.ExecuteReader();
return dr;
}

/// <summary>
/// 获取数据视图
/// </summary>
/// <param name="as_sqlstr"></param>
/// <returns></returns>
public DataView GetDV(string as_sqlstr)
{
as_sqlstr = ChangeSQLStatement(as_sqlstr);

OleDbDataAdapter MyDA = new OleDbDataAdapter(as_sqlstr, MyConnection);

MyDA.SelectCommand.CommandTimeout = 600;

DataSet ds = new DataSet();
MyDA.Fill(ds, "Result");
DataView dv = ds.Tables["Result"].DefaultView;

MyDA.SelectCommand.Connection.Close();

return dv;
}

/// <summary>
/// 获取数据表
/// </summary>
/// <param name="as_sqlstr"></param>
/// <returns></returns>
public DataTable GetDT(string as_sqlstr)
{
as_sqlstr = ChangeSQLStatement(as_sqlstr);

OleDbDataAdapter MyDA = new OleDbDataAdapter(as_sqlstr, MyConnection);

MyDA.SelectCommand.CommandTimeout = 600;

DataSet ds = new DataSet();
MyDA.Fill(ds, "Result");
DataTable dv = ds.Tables["Result"];

MyDA.SelectCommand.Connection.Close();

return dv;
}

/// <summary>
/// 获取数据表集
/// </summary>
/// <param name="as_sqlstr"></param>
/// <returns></returns>
public DataSet GetDT(string as_sqlstr)
{
as_sqlstr = ChangeSQLStatement(as_sqlstr);

OleDbDataAdapter MyDA = new OleDbDataAdapter(as_sqlstr, MyConnection);

MyDA.SelectCommand.CommandTimeout = 600;

DataSet ds = new DataSet();
MyDA.Fill(ds, "Result");

MyDA.SelectCommand.Connection.Close();
return ds;
}

/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="as_StoreProcedureName">存储过程名称</param>
/// <param name="param">参数</param>
/// <returns></returns>
public bool ExecStoreProcedure(string as_StoreProcedureName, ref OleDbParameter[] param)
{
bool lbl_rtn;

try
{
MyCommand = new OleDbCommand(as_StoreProcedureName, MyConnection);
MyCommand.CommandType = CommandType.StoredProcedure;

if (param != null)
{
for (int i = 0; i < param.Length; i++)
{
MyCommand.Parameters.Add(param[i]);
}
}

MyConnection.Open();

MyCommand.ExecuteNonQuery();

MyConnection.Close();

lbl_rtn = true;

}
catch (Exception ex)
{
MyConnection.Close();
lbl_rtn = false;
}

return lbl_rtn;
}

/// <summary>
/// 获得存储过程返回结果集
/// </summary>
/// <param name="as_StoreProcedureName">存储过程名称</param>
/// <param name="inParam">参数</param>
/// <returns></returns>
public DataTable GetDTFromStoreProcedure(string as_StoreProcedureName, OleDbParameter[] inParam)
{
DataTable dt = new DataTable();

try
{
MyCommand = new OleDbCommand(as_StoreProcedureName, MyConnection);
MyCommand.CommandType = CommandType.StoredProcedure;

if (inParam != null)
{
for (int i = 0; i < inParam.Length; i++)
{
MyCommand.Parameters.Add(inParam[i]);
}
}

OleDbDataAdapter MyDA = new OleDbDataAdapter(MyCommand);
MyDA.Fill(dt);
}
catch (Exception)
{

}

return dt;
}

/// <summary>
/// 事务
/// </summary>
/// <param name="as_sqlstr"></param>
/// <param name="as_ErrMsg"></param>
/// <returns></returns>
public bool UpdateData(string as_sqlstr, ref string as_ErrMsg)
{

bool lbl_rtn;

as_ErrMsg = "";

as_sqlstr = ChangeSQLStatement(as_sqlstr);

MyCommand = new OleDbCommand();
MyCommand.Connection = MyConnection;
MyCommand.Transaction = MyTransaction;

try
{
MyCommand.CommandText = as_sqlstr;
MyCommand.ExecuteNonQuery();
CommitData();
lbl_rtn = true;
}
catch (Exception ex)
{
RollbackData();
lbl_rtn = false;
as_ErrMsg = ex.Message;

}
finally
{
MyCommand.Dispose();
}

return lbl_rtn;
}

/// <summary>
/// 关闭连接
/// </summary>
/// <param name="dr"></param
public void CloseDR(OleDbDataReader dr)
{
dr.Close();
MyConnection.Close();
}

public void OpenConnection()
{
MyConnection.Open();
}

public void StartTransaction()
{
MyTransaction = MyConnection.BeginTransaction(IsolationLevel.ReadCommitted);
}

/// <summary>
/// 事务提交
/// </summary>
public void CommitData()
{
MyTransaction.Commit();
MyConnection.Close();
}

/// <summary>
/// 回滚数据
/// </summary>
public void RollbackData()
{
MyTransaction.Rollback();
MyConnection.Close();
}
/// <summary>
/// 字符替换
/// </summary>
/// <param name="as_sqlstr"></param>
/// <returns></returns>
public string ChangeSQLStatement(string as_sqlstr)
{
string ls_newSqlStr;

ls_newSqlStr = as_sqlstr;

if (strOledbCon.ToUpper().IndexOf("SQLOLEDB") >= 0)
{
ls_newSqlStr = ls_newSqlStr.Replace("sysdate", "getdate()");
ls_newSqlStr = ls_newSqlStr.Replace("nvl(", "isnull(");
ls_newSqlStr = ls_newSqlStr.Replace("to_char(", "convert(varchar,");
ls_newSqlStr = ls_newSqlStr.Replace("to_date(", "convert(date,");
ls_newSqlStr = ls_newSqlStr.Replace("to_number(", "convert(numeric,");
ls_newSqlStr = ls_newSqlStr.Replace("substr(", "substring(");
ls_newSqlStr = ls_newSqlStr.Replace("||", "+");
ls_newSqlStr = ls_newSqlStr.Replace("length(", "len(");
ls_newSqlStr = ls_newSqlStr.Replace("rownum", "row_number() over(order by getdate())");
ls_newSqlStr = ls_newSqlStr.Replace(", 'yyyy-MM-dd'", "");
ls_newSqlStr = ls_newSqlStr.Replace(", 'yyyy-mm-dd'", "");
ls_newSqlStr = ls_newSqlStr.Replace(",'yyyy-MM-dd'", "");
ls_newSqlStr = ls_newSqlStr.Replace(",'yyyy-mm-dd'", "");
ls_newSqlStr = ls_newSqlStr.Replace("'HH24:mm:SS'", "108");
ls_newSqlStr = ls_newSqlStr.Replace("lineno,", "\"lineno\",");
ls_newSqlStr = ls_newSqlStr.Replace("lineno=", "\"lineno\"=");
ls_newSqlStr = ls_newSqlStr.Replace(" lineno ", " \"lineno\" ");
}

return ls_newSqlStr;
}
/// <summary>
/// 获得用户名
/// </summary>
/// <param name="as_staffcode"></param>
/// <returns></returns>

public string GetStaffName(string vip_id)
{
string ls_StaffName = "";

OleDbDataReader dr = GetDR("Select staffname from staff where staffcode = '" + vip_id + "'");

if (dr.Read())
{
ls_StaffName = dr[0].ToString();

CloseDR(dr);
return ls_StaffName;

}
else
{
CloseDR(dr);
return ls_StaffName;
}
}
}
}

Oracle数据库Helper类的更多相关文章

  1. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  2. (转)C# Oracle数据库操作类

    原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...

  3. 连接Oracle数据库帮助类

    连接Oracle数据库帮助类,就是把连接Oracle数据库的方法封装起来,只需要在其它页面调用就可,不需要重复写. import java.sql.Connection; import java.sq ...

  4. C# Oracle数据库操作类

    using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...

  5. Oracle数据库操作类及连接方法

    创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...

  6. oracle数据库date类型和mysql数据库datetime类型匹配

    oracle数据库有date类型,但是没有datetime类型 mysql数据库既有date类型也有datetime类型. Oracle数据库的date类型和mysql的date类型是不一样的,Ora ...

  7. C#DbHelperOra,Oracle数据库帮助类 (转载)

    主要功能如下数据访问抽象基础类 主要是访问Oracle数据库主要实现如下功能 .数据访问基础类(基于Oracle),主要是用来访问Oracle数据库的. .得到最大值:是否存在:是否存在(基于Orac ...

  8. .NET/C#/Oracle数据库操作类

    public static class OracleHelper { //数据库连接字符串 private readonly static string connstr = Configuration ...

  9. SpringBoot集成Atomikos使用Oracle数据库mybatis、jta框架

    项目中需要数据库分布式事物的实现,于是采用了atumikos技术. 因为生产上需要稳定,所以采用了springboot 1.5.9.RELEASE版本. 本文代码gitlab下载地址: https:/ ...

随机推荐

  1. 面向程序猿的设计模式 ——GoF《设计模式》读书总结(壹)抽象工厂&amp;生成器

    第一部分:创建型模式 创建型模式抽象了实例化过程. 它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.(把一些小的对象组装成大对象,这个工作由专门的类对象来做) 一个类创建型模式使用继承改变被实 ...

  2. B树索引与索引优化

    B树索引与索引优化 MySQL的MyISAM.InnoDB引擎默认均使用B+树索引(查询时都显示为“BTREE”),本文讨论两个问题: 为什么MySQL等主流数据库选择B+树的索引结构? 如何基于索引 ...

  3. HDU 4609 FFT+各种分类讨论

    思路: http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html 其实我是懒得写了.... 一定要define int long ...

  4. APACHE KYLIN™ 概览(分布式分析引擎)

    Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能 ...

  5. C#调用webservice(二)

    第二篇调用webservice,web服务是http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx,航班查询服务 添加web服 ...

  6. Android ViewPager系列之ViewPager一屏显示多个子页面

    ViewPager一屏显示多个子页面,常见的有两种形式: 1.当前展示的页面右侧显示一部分下个页面的内容 2.当前页面居中,左右两边分别显示上一个页面.下一个页面 第 1 种表现形式的实现代码 其实这 ...

  7. (转载) Android开发mac /dev/kvm is not found

    Android开发mac /dev/kvm is not found 标签: KVMAndroid开发KVM is not found芒果Android芒果iOS 2016-10-29 16:31 2 ...

  8. Microsoft Visual Studio 2015打开TFS大量报错问题解决方案

    用vs2015打开项目出现如图错误,尝试对XX项执行 添加 操作时遇到 XX 个错误,因为公司项目比较大,这个错误一直在弹,搜索了下,没有找到出现类似问题的解决方案. 因为这个路径是TFS(Team ...

  9. Python: Json串反序列化为自定义类对象

    最近刚接触到python,就想到了如何反序列化json串.网上找了一下,大部分都是用json模块反序列化为python数据结构(字典和列表).如果对json模块不了解的参考菜鸟教程.然后我在此基础上将 ...

  10. 【问题】解决python3不支持mysqldb

    Django框架使用的还是python2.x的MySQLdb,而python3.x使用的是pymysql,centos7上默认安装的python2.7,自己安装了python3.6的版本,在运行dja ...