如题,想了解一般公司里面的DBHelper类或SQLHelper类完整的代码,
虽然说大都都是大同小异,还是想清楚的了解了解,有的请贴代码,多谢!

解决方案 »

  1.   

    到www.51aspx.com上下载,很多的。
      

  2.   

    http://www.svnhost.cn/Article/?k=helper
      

  3.   

    推荐楼主李天平(动软.net代码生成器)组件http://www.cnblogs.com/ltp/archive/2008/03/01/1087455.html
      

  4.   

    麻烦大家帮忙看下这个DBHelper类的缺点啊 谢谢using System;
    using System.Collections.Generic;
    using System.Text;using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;namespace SqlServerDAL
    {
        public abstract class DBHelper
        {
            //数据库连接字符串
            public static readonly string connString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
             
           
            /// <summary>
            /// 要执行:预定义Command对象(Prepare Command)
            /// </summary>
            /// <param name="cmd">SqlCommand 对象</param>
            /// <param name="conn">SqlConnection 对象</param>
            /// <param name="trans">SqlTransaction 对象</param>
            /// <param name="commandType">命令类别:存储过程、文本字符串等</param>
            /// <param name="commandText">存储过程名称或SQL命令文本,如:select * from UserTab</param>
            /// <param name="cmdParms">Command对象需要使用的参数列表</param>
            private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
            {            if (conn.State != ConnectionState.Open)
                    conn.Open();            cmd.Connection = conn;
                cmd.CommandText = cmdText;            if (trans != null)
                    cmd.Transaction = trans;            cmd.CommandType = cmdType;            if (cmdParms != null)
                {
                    foreach (SqlParameter parm in cmdParms)
                        cmd.Parameters.Add(parm);
                }
            }        /// <summary>
            /// 通过连接字符串,执行SqlCommand(不返回结果集)
            /// </summary>
            /// <param name="connString">为SqlConnection对象提供:一个有效的连接字符串</param>
            /// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
            /// <param name="cmdText">存储过程名称或SQL命令文本</param>
            /// <param name="cmdParams">执行命令的参数列表</param>
            /// <returns>执行命令受影响的记录条数</returns>
            public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)
            {
                SqlCommand cmd = new SqlCommand();
                using (SqlConnection con = new SqlConnection(connString))
                {
                    PrepareCommand(cmd, con, null, cmdType, cmdText, cmdParams);
                    int val = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    return val;
                }
            }        /// <summary>
            /// 通过连接字符串,执行SqlCommand(返回结果集)
            /// </summary>
            /// <param name="connString">为SqlConnection对象提供:一个有效的连接字符串</param>
            /// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
            /// <param name="cmdText">存储过程名称或SQL命令文本</param>
            /// <param name="cmdParams">执行命令的参数列表</param>
            /// <returns>包含结果集的一个:SqlDataReader对象</returns>
            public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)
            {
                SqlCommand cmd = new SqlCommand();
                SqlConnection con = new SqlConnection(connString);
                try
                {
                    PrepareCommand(cmd, con, null, cmdType, cmdText, cmdParams);
                    SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return dr;
                }
                catch
                {
                    con.Close();
                    throw;
                }
            }        /// <summary>
            /// 返回第一条记录的第一列
            /// </summary>
            /// <param name="cmdText"></param>
            /// <param name="type"></param>
            /// <param name="parms"></param>
            /// <returns></returns>
            public static object ExecuteScalar(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)
            {
                SqlCommand cmd = new SqlCommand();
                using (SqlConnection con = new SqlConnection(connString))
                {
                    PrepareCommand(cmd, con, null, cmdType, cmdText, cmdParams);                
                    object obj =  cmd.ExecuteScalar();
                    cmd.Parameters.Clear();
                    return obj;
                    
                }
            }               /// <summary>
            /// 双向操作
            /// </summary>
            /// <param name="connString">为SqlConnection对象提供:一个有效的连接字符串</param>
            /// <param name="cmdType">命令类别:存储过程、文本字符串等</param>
            /// <param name="cmdText">存储过程名称或SQL命令文本</param>
            /// <param name="cmdParams">执行命令的参数列表</param>
            /// <returns>返回一个数据集</returns>
            public static DataSet getDateSet(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParams)
            {
                DataSet dt = new DataSet();
                SqlCommand cmd = new SqlCommand();
                using (SqlConnection con = new SqlConnection(connString))
                {
                    try
                    {
                        PrepareCommand(cmd, con, null, cmdType, cmdText, cmdParams);  
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(dt);
                    }
                    catch (Exception ex)
                    {
                        throw new ApplicationException("数据访问双向操作失败!", ex);
                    }
                    return dt;
                }
            }
            
        }
        
    }