查看: 870|回复: 0

[JavaSE] OraHelper帮助类

[复制链接]
  • TA的每日心情
    开心
    2017-12-23 16:18
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2014-3-21 18:27:43 | 显示全部楼层 |阅读模式
    1. using System;
    2. using System.Configuration;
    3. using System.Data;
    4. using System.Data.OleDb;
    5. using System.Collections.Generic;

    6. namespace DBUtility
    7. {
    8.     public abstract class OleDbHelper
    9.     {
    10.         private static Dictionary<string, OleDbParameter[]> parmCache = new Dictionary<string, OleDbParameter[]>();
    11.         internal const int CommandTimeout = 3;

    12.         public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;
    13.         public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;
    14.         public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString;
    15.         public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString;

    16.         /// <summary>
    17.         /// 获得连接对象
    18.         /// </summary>
    19.         /// <returns></returns>
    20.         internal static OleDbConnection GetOleDbConnection()
    21.         {
    22.             return new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\\OhAsp.Net\\OhAsp.Net For Access\\Shuaishuai.OhAspNet.Web\\OH-ASP.NET-DB\\OHASPNETDB.mdb;");
    23.         }

    24.         /// <summary>
    25.         /// 返回受影响的行数
    26.         /// </summary>
    27.         /// <param name="cmdText">a</param>
    28.         /// <param name="commandParameters">传入的参数</param>
    29.         /// <returns></returns>
    30.         public static int ExecuteNonQuery(string cmdText, params OleDbParameter[] commandParameters)
    31.         {
    32.             OleDbCommand command = new OleDbCommand();

    33.             using (OleDbConnection connection = GetOleDbConnection())
    34.             {
    35.                 PrepareCommand(command, connection, CommandType.Text, cmdText, commandParameters);
    36.                 int val = command.ExecuteNonQuery();
    37.                 command.Parameters.Clear();
    38.                 connection.Close();
    39.                 return val;
    40.             }
    41.         }



    42.         public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
    43.         {
    44.             OleDbCommand command = new OleDbCommand();

    45.             using (OleDbConnection connection = GetOleDbConnection())
    46.             {
    47.                 PrepareCommand(command, connection, cmdType, cmdText, commandParameters);
    48.                 int val = command.ExecuteNonQuery();
    49.                 command.Parameters.Clear();
    50.                 connection.Close();
    51.                 return val;
    52.             }
    53.         }



    54.         /// <summary>
    55.         /// 返回SqlDataReader对象
    56.         /// </summary>
    57.         /// <param name="cmdText"></param>
    58.         /// <param name="commandParameters">传入的参数</param>
    59.         /// <returns></returns>
    60.         public static OleDbDataReader ExecuteReader(string cmdText, params OleDbParameter[] commandParameters)
    61.         {
    62.             OleDbCommand command = new OleDbCommand();
    63.             OleDbConnection connection = GetOleDbConnection();
    64.             try
    65.             {
    66.                 PrepareCommand(command, connection, CommandType.Text, cmdText, commandParameters);
    67.                 OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
    68.                 command.Parameters.Clear();

    69.                 return reader;
    70.             }
    71.             catch
    72.             {
    73.                 connection.Close();
    74.                 throw;
    75.             }
    76.         }


    77.         public static OleDbDataReader ExecuteReader(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
    78.         {
    79.             OleDbCommand command = new OleDbCommand();
    80.             OleDbConnection connection = GetOleDbConnection();
    81.             try
    82.             {
    83.                 PrepareCommand(command, connection, cmdType, cmdText, commandParameters);
    84.                 OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
    85.                 command.Parameters.Clear();

    86.                 return reader;
    87.             }
    88.             catch
    89.             {
    90.                 connection.Close();
    91.                 throw;
    92.             }
    93.         }


    94.         
    95.         public static object ExecuteScalar(string cmdText, params OleDbParameter[] commandParameters)
    96.         {
    97.             OleDbCommand cmd = new OleDbCommand();

    98.             using (OleDbConnection connection = GetOleDbConnection())
    99.             {
    100.                 PrepareCommand(cmd, connection, CommandType.Text, cmdText, commandParameters);
    101.                 object val = cmd.ExecuteScalar();
    102.                 cmd.Parameters.Clear();
    103.                 connection.Close();
    104.                 return val;
    105.             }
    106.         }

    107.         public static object ExecuteScalar(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
    108.         {
    109.             OleDbCommand cmd = new OleDbCommand();

    110.             using (OleDbConnection connection = GetOleDbConnection())
    111.             {
    112.                 PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
    113.                 object val = cmd.ExecuteScalar();
    114.                 cmd.Parameters.Clear();
    115.                 connection.Close();
    116.                 return val;
    117.             }
    118.         }


    119.         
    120.         public static void CacheParameters(string cacheKey, params OleDbParameter[] commandParameters)
    121.         {
    122.             parmCache[cacheKey] = commandParameters;
    123.         }

    124.         
    125.         public static OleDbParameter[] GetCachedParameters(string cacheKey)
    126.         {
    127.             OleDbParameter[] cachedParms;
    128.             if (!parmCache.TryGetValue(cacheKey, out cachedParms))
    129.                 return null;

    130.             OleDbParameter[] clonedParms = new OleDbParameter[cachedParms.Length];

    131.             for (int i = 0, j = cachedParms.Length; i < j; i++)
    132.                 clonedParms[i] = (OleDbParameter)((ICloneable)cachedParms[i]).Clone();

    133.             return clonedParms;
    134.         }

    135.         private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms)
    136.         {

    137.             if (conn.State != ConnectionState.Open)
    138.                 conn.Open();

    139.             cmd.Connection = conn;
    140.             cmd.CommandText = cmdText;

    141.             cmd.CommandType = cmdType;
    142.             cmd.CommandTimeout = CommandTimeout;

    143.             if (cmdParms != null)
    144.             {
    145.                 foreach (OleDbParameter parm in cmdParms)
    146.                     cmd.Parameters.Add(parm);
    147.             }
    148.         }
    149.         
    150.         public static OleDbDataReader ExecutePager(int pageIndex, int pageSize, string idColumn, string showString, string queryString, string whereString, string orderString, out int pageCount, out int recordCount, out OleDbConnection connection)
    151.         {

    152.             if (pageIndex < 1)
    153.             {
    154.                 pageIndex = 1;
    155.             }
    156.             else
    157.             {
    158.                 pageIndex = pageIndex + 1;
    159.             }
    160.             if (pageSize < 1) pageSize = 10;
    161.             if (string.IsNullOrEmpty(showString)) showString = "*";
    162.             if (string.IsNullOrEmpty(orderString)) orderString = "ID desc";
    163.             connection = GetOleDbConnection();

    164.             connection.Open();
    165.             string myVw = string.Format(" ( {0} ) tempVw ", queryString);
    166.             //string myVw = "Articles";
    167.             OleDbCommand cmdCount = new OleDbCommand(string.Format(" select count(0) as recordCount from {0} {1}", myVw, whereString), connection);

    168.             recordCount = Convert.ToInt32(cmdCount.ExecuteScalar());

    169.             if ((recordCount % pageSize) > 0)
    170.                 pageCount = recordCount / pageSize + 1;
    171.             else
    172.                 pageCount = recordCount / pageSize;
    173.             OleDbCommand cmdRecord;
    174.             if (pageIndex == 1)//第一页
    175.             {
    176.                 cmdRecord = new OleDbCommand(string.Format("select top {0} {1} from {2} {3} order by {4} ", pageSize, showString, myVw, whereString, orderString), connection);
    177.             }
    178.             else if (pageIndex > pageCount)//超出总页数
    179.             {
    180.                 cmdRecord = new OleDbCommand(string.Format("select top {0} {1} from {2} {3} order by {4} ", pageSize, showString, myVw, "where 1=2", orderString), connection);
    181.             }
    182.             else
    183.             {
    184.                 int pageLowerBound = pageSize * pageIndex;
    185.                 int pageUpperBound = pageLowerBound - pageSize;

    186.                 OleDbCommand cmd = new OleDbCommand(string.Format("select top {0} {1} from {2} {3} order by {4} ", pageLowerBound, showString, myVw, whereString, orderString), connection);
    187.                 string result = string.Empty;
    188.                 using (IDataReader dr = cmd.ExecuteReader())
    189.                 {
    190.                     while (dr.Read())
    191.                     {
    192.                         if (pageUpperBound < 1)
    193.                         {
    194.                             result += "," + dr.GetInt32(0);
    195.                         }
    196.                         pageUpperBound--;
    197.                     }
    198.                 }
    199.                 string recordIDs = result.Substring(1);
    200.                 cmdRecord = new OleDbCommand(string.Format("select top {0} {1} from {2} where {3} in ({4}) order by {5} ", pageSize, showString, myVw, idColumn, recordIDs, orderString), connection);
    201.             }
    202.             return cmdRecord.ExecuteReader();

    203.         }
    204.     }
    205. }
    复制代码


    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2019 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表