C#_访问oracle通用代码_第1页
C#_访问oracle通用代码_第2页
C#_访问oracle通用代码_第3页
C#_访问oracle通用代码_第4页
C#_访问oracle通用代码_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

using System using System Data using System Data OracleClient using System Web UI WebControls namespace SiFenManager Util 数据库通用操作类 public class Database protected OracleConnection con 连接对象 public Database con new OracleConnection DafangFramework AppConfig DataBaseConnectionString public Database string constr con new OracleConnection constr region 打开数据库连接 打开数据库连接 private void Open 打开数据库连接 if con State ConnectionState Closed try 打开数据库连接 con Open catch Exception e throw e endregion region 关闭数据库连接 关闭数据库连接 private void Close 判断连接的状态是否已经打开 if con State ConnectionState Open con Close endregion region 执行查询语句 返回 OracleDataReader 注意 调用该方法后 一 定要对 OracleDataReader 进行 Close 执行查询语句 返回 OracleDataReader 注意 调用该方法后 一定要 对 OracleDataReader 进行 Close 查询语句 OracleDataReader public OracleDataReader ExecuteReader string sql OracleDataReader myReader Open OracleCommand cmd new OracleCommand sql con myReader cmd ExecuteReader CommandBehavior CloseConnection return myReader endregion region 执行带参数的 SQL 语句 执行 SQL 语句 返回影响的记录数 SQL 语句 影响的记录数 public int ExecuteSql string sql params OracleParameter cmdParms OracleCommand cmd new OracleCommand try PrepareCommand cmd con null sql cmdParms int rows cmd ExecuteNonQuery cmd Parameters Clear return rows catch System Data OracleClient OracleException e throw e endregion region 执行带参数的 SQL 语句 执行不带参数的 SQL 语句 SQL 语句 public void ExecuteSql string sql OracleCommand cmd new OracleCommand sql con try Open cmd ExecuteNonQuery Close catch System Data OracleClient OracleException e Close throw e endregion region 执行 SQL 语句 返回数据到 DataSet 中 执行 SQL 语句 返回数据到 DataSet 中 sql 语句 返回 DataSet public DataSet GetDataSet string sql DataSet ds new DataSet try Open 打开数据连接 OracleDataAdapter adapter new OracleDataAdapter sql con adapter Fill ds catch Exception ex finally Close 关闭数据库连接 return ds endregion region 执行 SQL 语句 返回数据到自定义 DataSet 中 执行 SQL 语句 返回数据到 DataSet 中 sql 语句 自定义返回的 DataSet 表名 返回 DataSet public DataSet GetDataSet string sql string DataSetName DataSet ds new DataSet Open 打开数据连接 OracleDataAdapter adapter new OracleDataAdapter sql con adapter Fill ds DataSetName Close 关闭数据库连接 return ds endregion region 执行 Sql 语句 返回带分页功能的自定义 dataset 执行 Sql 语句 返回带分页功能的自定义 dataset Sql 语句 每页显示记录数 当前页 返回 dataset 表名 返回 DataSet public DataSet GetDataSet string sql int PageSize int CurrPageIndex string DataSetName DataSet ds new DataSet Open 打开数据连接 OracleDataAdapter adapter new OracleDataAdapter sql con adapter Fill ds PageSize CurrPageIndex 1 PageSize DataSetName Close 关闭数据库连接 return ds endregion region 执行 SQL 语句 返回记录总数 执行 SQL 语句 返回记录总数 sql 语句 返回记录总条数 public int GetRecordCount string sql int recordCount 0 Open 打开数据连接 OracleCommand command new OracleCommand sql con OracleDataReader dataReader command ExecuteReader while dataReader Read recordCount dataReader Close Close 关闭数据库连接 return recordCount endregion region 统计某表记录总数 统计某表记录总数 主键 索引键 数据库 用户名 表名 查询条件 返回记录总数 public int GetRecordCount string keyField string tableName string condition int RecordCount 0 string sql select count keyField as count from tableName condition DataSet ds GetDataSet sql if ds Tables 0 Rows Count 0 RecordCount Convert ToInt32 ds Tables 0 Rows 0 0 ds Clear ds Dispose return RecordCount 统计某表记录总数 可重复的字段 数据库 用户名 表名 查询条件 字段是否主键 返回记录总数 public int GetRecordCount string Field string tableName string condition bool flag int RecordCount 0 if flag RecordCount GetRecordCount Field tableName condition else string sql select count distinct Field as count from tableName condition DataSet ds GetDataSet sql if ds Tables 0 Rows Count 0 RecordCount Convert ToInt32 ds Tables 0 Rows 0 0 ds Clear ds Dispose return RecordCount endregion region 统计某表分页总数 统计某表分页总数 主键 索引键 表名 查询条件 页宽 记录总数 返回分页总数 public int GetPageCount string keyField string tableName string condition int pageSize int RecordCount int PageCount 0 PageCount RecordCount pageSize 0 RecordCount pageSize 1 RecordCount pageSize if PageCount 1 PageCount 1 return PageCount 统计某表分页总数 主键 索引键 表名 查询条件 页宽 返回页面总数 public int GetPageCount string keyField string tableName string condition int pageSize ref int RecordCount RecordCount GetRecordCount keyField tableName condition return GetPageCount keyField tableName condition pageSize RecordCount 统计某表分页总数 可重复的字段 表名 查询条件 页宽 是否主键 返回页页总数 public int GetPageCount string Field string tableName string condition ref int RecordCount int pageSize bool flag RecordCount GetRecordCount Field tableName condition flag return GetPageCount Field tableName condition pageSize ref RecordCount endregion region Sql 分页函数 构造分页查询 SQL 语句 主键 所有需要查询的字段 field1 field2 库名 拥有者 表名 查询条件 1 where 排序条件 2 order by 当前页号 页宽 SQL 语句 public string JoinPageSQL string KeyField string FieldStr string TableName string Where string Order int CurrentPage int PageSize string sql null if CurrentPage 1 sql select CurrentPage PageSize FieldStr from TableName Where Order else sql select from sql select CurrentPage PageSize FieldStr from TableName Where Order a sql where KeyField not in sql select CurrentPage 1 PageSize KeyField from TableName Where Order return sql 构造分页查询 SQL 语句 字段名 非主键 库名 拥有者 表名 查询条件 1 where 排序条件 2 order by 当前页号 页宽 SQL 语句 public string JoinPageSQL string Field string TableName string Where string Order int CurrentPage int PageSize string sql null if CurrentPage 1 sql select rownum CurrentPage PageSize Field from TableName Where Order group by Field else sql select from sql select rownum CurrentPage PageSize Field from TableName Where Order group by Field a sql where Field not in sql select rownum CurrentPage 1 PageSize Field from TableName Where Order group by Field return sql endregion region 根据系统时间动态生成各种查询语句 现已经注释掉 以备以后使用 region 根据查询时间的条件 动态生成查询语句 根据查询时间的条件 动态生成查询语句 开始时间 结束时间 单位 开始线损率 结束线损率 单位字段 线损率字段 表后缀 SQL 语句 public string SQL DateTime starttime DateTime endtime string dw float startxsl float endxsl string danwei string xiansunlv string tablehz string sql null 将输入的时间格式转换成固定的格式 yyyy mm dd string zstarttime starttime GetDateTimeFormats D 1 ToString string zendtime endtime GetDateTimeFormats D 1 ToString string nTime DateTime Now GetDateTimeFormats D 1 ToString 取日期值的前六位 及年月值 string sTime zstarttime Substring 0 4 zstarttime Substring 5 2 string eTime zendtime Substring 0 4 zendtime Substring 5 2 string nowTime nTime Substring 0 4 nTime Substring 5 2 分别取日期的年和月 int sy Convert ToInt32 zstarttime Substring 0 4 int ey Convert ToInt32 zendtime Substring 0 4 int sm Convert ToInt32 zstarttime Substring 5 2 int em Convert ToInt32 zendtime Substring 5 2 相关变量定义 int s int e int i int j int js int nz string x 一 取当前表生成 SQL 语句 if sTime nowTime 如果年份相等 if sy ey s Convert ToInt32 sTime e Convert ToInt32 eTime for i s 1 i startxsl and xiansunlv startxsl and xiansunlv endxsl 结束年份大于开始年份 else 1 先循环到起始时间和起始时间的 12 月 s Convert ToInt32 sTime x zstarttime Substring 0 4 12 nz Convert ToInt32 x for i s 1 i startxsl and xiansunlv endxsl union 2 循环两者相差年份 for i sy 1 i ey i for j 1 j 12 j if j startxsl and xiansunlv startxsl and xiansunlv endxsl union 3 循环到结束的月份 js Convert ToInt32 zendtime Substring 0 4 00 for i js i startxsl and xiansunlv startxsl and xiansunlv endxsl 三 取其他表生成生成 SQL 语句 else 1 先循环到起始时间和起始时间的 12 月 s Convert ToInt32 sTime x zstarttime Substring 0 4 12 nz Convert ToInt32 x for i s i startxsl and xiansunlv endxsl union 2 循环两者相差年份 for i sy 1 i ey i for j 1 j 12 j if j startxsl and xiansunlv startxsl and xiansunlv endxsl union 3 循环到结束的月份 js Convert ToInt32 zendtime Substring 0 4 00 for i js i startxsl and xiansunlv startxsl and xiansunlv endxsl return sql endregion region 根据查询时间的条件 动态生成查询语句 根据查询时间的条件 动态生成查询语句 开始时间 结束时间 查询字段 查询条件 表后缀 SQL 语句 public string SQL DateTime starttime DateTime endtime string zhiduan string tiaojiao string tablehz string sql null 将输入的时间格式转换成固定的格式 yyyy mm dd string zstarttime starttime GetDateTimeFormats D 1 ToString string zendtime endtime GetDateTimeFormats D 1 ToString string nTime DateTime Now GetDateTimeFormats D 1 ToString 取日期值的前六位 及年月值 string sTime zstarttime Substring 0 4 zstarttime Substring 5 2 string eTime zendtime Substring 0 4 zendtime Substring 5 2 string nowTime nTime Substring 0 4 nTime Substring 5 2 分别取日期的年和月 int sy Convert ToInt32 zstarttime Substring 0 4 int ey Convert ToInt32 zendtime Substring 0 4 int sm Convert ToInt32 zstarttime Substring 5 2 int em Convert ToInt32 zendtime Substring 5 2 相关变量定义 int s int e int i int j int js int nz string x 一 取当前表生成 SQL 语句 if sTime nowTime 二 取当前表和其他表生成 SQL 语句 else if sTime nowTime 如果年份相等 if sy ey s Convert ToInt32 sTime e Convert ToInt32 eTime for i s 1 i e i i i sql select zhiduan from i ToString tablehz where tiaojiao union sql select zhiduan from e ToString tablehz where tiaojiao 结束年份大于开始年份 else 1 先循环到起始时间和起始时间的 12 月 s Convert ToInt32 sTime x zstarttime Substring 0 4 12 nz Convert ToInt32 x for i s 1 i nz i i i sql select zhiduan from i ToString tablehz where tiaojiao union 2 循环两者相差年份 for i sy 1 i ey i for j 1 j 12 j if j 10 sql select zhiduan from i ToString 0 j ToS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论