几乎每个项目都会用到SQLHelper.cs,但是似乎我写的帮助类都不能满足每一个需求
我想问的是怎样的SQLHelper.cs才能够做到通用的,
希望给出你们项目中的SQLHelper.cs源码

解决方案 »

  1.   

    http://topic.csdn.net/u/20100804/17/b679ac5f-2eb5-4d10-ab6e-02644ce4b678.html?seed=961568589&r=67462960
    DBAccess.csusing System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace DBAccess
    {
        public class SqlHelper:DBAccess
        {
            private List<SqlParameter> m_ListParameter = null;        public DataTable ExecuteDataTable(string cmdText, params SqlParameter[] commandParameters)
            {
                DataSet ds = ExecuteDataSet(cmdText, commandParameters);
                if (null != ds)
                {
                    if (0 != ds.Tables.Count)
                    {
                        return ds.Tables[0];
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }        public DataTable ExecuteDataTable(string cmdText)
            {
                return ExecuteDataTable(cmdText, GetParameters());
            }        public DataRow ExecuteDataRow(string cmdText, params SqlParameter[] commandParameters)
            {
                DataTable dt = ExecuteDataTable(cmdText, commandParameters);
                if (null != dt)
                {
                    if (0 != dt.Rows.Count)
                    {
                        return dt.Rows[0];                }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }        public DataRow ExecuteDataRow(string cmdText)
            {
                return ExecuteDataRow(cmdText, GetParameters());
            }        public int ExecuteNonQuery(string cmdText)
            {
                return ExecuteNonQuery(cmdText, GetParameters());
            }
            public int ExecuteNonQuery(SqlTransaction trans, string cmdText)
            {
                return ExecuteNonQuery(trans, cmdText, GetParameters());
            }
            public DataSet ExecuteDataSet(string cmdText)
            {
                return ExecuteDataSet(cmdText, GetParameters());
            }
            public SqlDataReader ExecuteReader(string cmdText)
            {
                return ExecuteReader(cmdText, GetParameters());
            }
            public object ExecuteScalar(string cmdText)
            {
                return ExecuteScalar(cmdText, GetParameters());
            }        private SqlParameter GetParameter(string paraName, SqlDbType paraType, object value)
            {
                SqlParameter para = new SqlParameter(paraName, paraType);
                para.Value = value;            return para;
            }        private SqlParameter GetParameter(string paraName, SqlDbType paraType, object value, int size)
            {
                SqlParameter para = new SqlParameter(paraName, paraType);
                para.Value = value;
                para.Size = size;
                return para;
            }        public void AddParameter(string paraName, SqlDbType paraType, object value)
            {
                if (null == m_ListParameter)
                {
                    m_ListParameter = new List<SqlParameter>();
                }
                SqlParameter para = GetParameter(paraName, paraType, value);
                m_ListParameter.Add(para);
            }        private SqlParameter[] GetParameters()
            {
                SqlParameter[] paras = null;
                if (null != m_ListParameter)
                {
                    if (0 != m_ListParameter.Count)
                    {
                        paras = m_ListParameter.ToArray();
                    }
                    m_ListParameter = null;
                }            return paras;
            }
        }
    }SqlHelper.csusing System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace DBAccess
    {
        public class SqlHelper:DBAccess
        {
            private List<SqlParameter> m_ListParameter = null;        public DataTable ExecuteDataTable(string cmdText, params SqlParameter[] commandParameters)
            {
                DataSet ds = ExecuteDataSet(cmdText, commandParameters);
                if (null != ds)
                {
                    if (0 != ds.Tables.Count)
                    {
                        return ds.Tables[0];
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }        public DataTable ExecuteDataTable(string cmdText)
            {
                return ExecuteDataTable(cmdText, GetParameters());
            }        public DataRow ExecuteDataRow(string cmdText, params SqlParameter[] commandParameters)
            {
                DataTable dt = ExecuteDataTable(cmdText, commandParameters);
                if (null != dt)
                {
                    if (0 != dt.Rows.Count)
                    {
                        return dt.Rows[0];                }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }        public DataRow ExecuteDataRow(string cmdText)
            {
                return ExecuteDataRow(cmdText, GetParameters());
            }        public int ExecuteNonQuery(string cmdText)
            {
                return ExecuteNonQuery(cmdText, GetParameters());
            }
            public int ExecuteNonQuery(SqlTransaction trans, string cmdText)
            {
                return ExecuteNonQuery(trans, cmdText, GetParameters());
            }
            public DataSet ExecuteDataSet(string cmdText)
            {
                return ExecuteDataSet(cmdText, GetParameters());
            }
            public SqlDataReader ExecuteReader(string cmdText)
            {
                return ExecuteReader(cmdText, GetParameters());
            }
            public object ExecuteScalar(string cmdText)
            {
                return ExecuteScalar(cmdText, GetParameters());
            }        private SqlParameter GetParameter(string paraName, SqlDbType paraType, object value)
            {
                SqlParameter para = new SqlParameter(paraName, paraType);
                para.Value = value;            return para;
            }        private SqlParameter GetParameter(string paraName, SqlDbType paraType, object value, int size)
            {
                SqlParameter para = new SqlParameter(paraName, paraType);
                para.Value = value;
                para.Size = size;
                return para;
            }        public void AddParameter(string paraName, SqlDbType paraType, object value)
            {
                if (null == m_ListParameter)
                {
                    m_ListParameter = new List<SqlParameter>();
                }
                SqlParameter para = GetParameter(paraName, paraType, value);
                m_ListParameter.Add(para);
            }        private SqlParameter[] GetParameters()
            {
                SqlParameter[] paras = null;
                if (null != m_ListParameter)
                {
                    if (0 != m_ListParameter.Count)
                    {
                        paras = m_ListParameter.ToArray();
                    }
                    m_ListParameter = null;
                }            return paras;
            }
        }
    }
      

  2.   

    DbHelper数据操作类,DbProviderFactories http://yaya123.blog.51cto.com/341518/99615
      

  3.   

    最近几个项目都没用SQLHelper.csSQLHelper.cs目前已经有非常成熟通用的了如果你目前的项目在用ADO.NET 可以找一下
      

  4.   

    可以看看Microsoft Enterprise Library 中的Data Access Application Block 下载:
    http://www.microsoft.com/downloads/details.aspx?familyid=BCB166F7-DD16-448B-A152-9845760D9B4C&displaylang=en
      

  5.   

    微软的SQLHelper.cs 很好很强大呀,基本常用的方法都有,你也 自己可以增加一些需要的方法,收集起来就成了自己的收藏了呀