zoukankan      html  css  js  c++  java
  • Ado.net 通用访问类

    public class DbHelperSQL
        {
            private static string connString = ConfigurationManager.ConnectionStrings["SqlDataSource"].ToString();
    
            #region 获取一个连接通道
            /// <summary>
            /// 获取一个连接通道
            /// </summary>
            /// <returns></returns>
            public static SqlConnection CreateConn()
            {
                return new SqlConnection(connString);
            }
            #endregion
    
            #region 获取数据源
            /// <summary>
            /// 获取数据源
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="parms"></param>
            /// <returns></returns>
            public static DataSet Query(string sql, CommandType cmdType = CommandType.Text, params SqlParameter[] parms)
            {
                DataSet dt = new DataSet();
                using (SqlConnection conn = CreateConn())
                {
                    SqlDataAdapter da = new SqlDataAdapter();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.CommandType = cmdType;
                    if (parms != null)
                    {
                        cmd.Parameters.AddRange(parms);
                    }
                    da.SelectCommand = cmd;
                    da.Fill(dt);
                }
    
                return dt;
            }
            #endregion
    
            #region 执行事务
            /// <summary>
            /// 执行事务
            /// </summary>
            /// <param name="sql">存储过程名</param>
            /// <param name="parmsList">每个存储过程中所包含的参数</param>
            /// <returns></returns>
            public static int ExecTran(string sql,  List<SqlParameter[]> parmsList,CommandType cmdType = CommandType.Text)
            {
                int row = 0;
                using (SqlConnection conn = CreateConn())
                {
                    conn.Open();
                    SqlTransaction tran = conn.BeginTransaction();
                    SqlCommand cmd = new SqlCommand(sql, conn, tran);
                    cmd.CommandType = cmdType;
                    if (parmsList != null && parmsList.Count>0)
                    {
                        foreach (SqlParameter[] parms in parmsList)
                        {
                            cmd.Parameters.Clear();
                            if (parms != null)
                            {
                                cmd.Parameters.AddRange(parms);
                            } 
                            try
                            {
                                row += cmd.ExecuteNonQuery();
                            }
                            catch
                            {
                                tran.Rollback();
                                return 0;
                            }
                        }
                        tran.Commit();
                    }
                }
                return row;
            }
            #endregion
    
            #region 执行包含主表和子表的事务
            /// <summary>
            /// 执行包含主表和子表的事务
            /// </summary>
            /// <param name="MainSql">主表存储过程</param>
            /// <param name="MainParmsList">主表存储过程包含的参数</param>
            /// <param name="ChildSql">子表存储过程</param>
            /// <param name="ChildParmsList"></param>
            /// <returns></returns>
            public int ExecTran(string MainSql, CommandType cmdType, List<SqlParameter[]> MainParmsList, string ChildSql, List<SqlParameter[]> ChildParmsList)
            {
                int row = 0;
                using (SqlConnection conn = CreateConn())
                {
                    conn.Open();
                    SqlTransaction tran = conn.BeginTransaction();
                    SqlCommand cmd = new SqlCommand(MainSql, conn, tran);               
                    cmd.CommandType = cmdType;               
                    if (MainParmsList != null)
                    {
                        foreach (SqlParameter[] parms in MainParmsList)
                        { 
                            cmd.Parameters.Clear();
                            if (parms != null)
                            {                           
                                cmd.Parameters.AddRange(parms);                           
                            }
                            try
                            {
                                row = cmd.ExecuteNonQuery();
                            }
                            catch
                            {
                                tran.Rollback();
                                return 0;
                            }
                        }
                    }
                    cmd.CommandText = ChildSql;
                    if (ChildParmsList != null)
                    {
                        foreach (SqlParameter[] parm in ChildParmsList)
                        {
                            cmd.Parameters.Clear();
                            if (parm != null)
                            {
                                cmd.Parameters.AddRange(parm);
                            }
                            try
                            {
                                row = cmd.ExecuteNonQuery();
                            }
                            catch
                            {
                                tran.Rollback();
                                return 0;
                            }
                        }
                        tran.Commit();
                    }
                }
                return row;
            }
            #endregion
    
            #region 执行Sql语句
            /// <summary>
            /// 执行Sql语句
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="parms"></param>
            /// <returns></returns>
            public static int ExecuteSql(string sql, CommandType cmdType = CommandType.Text, params SqlParameter[] parms)
            {
                int row = 0;
                using (SqlConnection conn = CreateConn())
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.CommandType = cmdType;
                    if (parms != null)
                    {
                        cmd.Parameters.AddRange(parms);
                    }
                    row = cmd.ExecuteNonQuery();
                }
                return row;
            }
            #endregion
    
            #region 获取首行首列
            /// <summary>
            /// 获取首行首列
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="parms"></param>
            /// <returns></returns>
            public static object GetSingle(string sql, CommandType cmdType= CommandType.Text, params SqlParameter[] parms)
            {
                using (SqlConnection conn = CreateConn())
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.CommandType = cmdType;
                    if (parms != null)
                    {
                        cmd.Parameters.AddRange(parms);
                    }
                    return cmd.ExecuteScalar();
                }
            }
            #endregion
        }
  • 相关阅读:
    函数、包和错误处理
    程序流程控制
    poj 2515 Birthday Cake
    poj 2094 多项式求和。
    hdu 3625 第一类striling 数
    hdu 4372 第一类stirling数的应用/。。。好题
    poj 1845 Sumdiv
    hdu 3641 Treasure Hunting 强大的二分
    poj 3335 /poj 3130/ poj 1474 半平面交 判断核是否存在 / poj1279 半平面交 求核的面积
    hdu 2841 Visible Trees
  • 原文地址:https://www.cnblogs.com/xuyubing/p/4334554.html
Copyright © 2011-2022 走看看