• 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
        }
  • 相关阅读:
    redis客户端windows版中文乱码解决方案
    nginx做负载均衡,怎么在有宕机情况出现时保证网站的响应速度
    支付宝同步和异步验签结果不一致的解决方法
    @ResponseBody中文乱码解决方案
    [javamail]AUTH LOGIN failed;Invalid username or password报错
    Could not load driverClass ${driverClassName} 的解决方案
    eclipse中,maven报错maven.multiModuleProjectDirectory system property is not set
    spring bean初始化和销毁方法
    关于静态资源是否应该放到WEB-INF目录
    使用Jedis出现Connection refused的解决方案
  • 原文地址:https://www.cnblogs.com/xuyubing/p/4334554.html
Copyright © 2020-2023  润新知