文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必以明文标注文章原始出处及本声明   作者:浪淘沙
此贴的方法会持续更新, 此文件要引用与数据操作的基类 
using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
namespace EC 
{ 
    /// <summary> 
    /// EB通用与数据交互操作基类 
    /// </summary> 
    public class EBCommonObj:IDisposable 
    { 
        private bool _alreadyDispose = false; 
        private DBOperate dbo; 
        private string sql = null; 
        private System.Data.DataSet ds; 
        #region 构造与析构函数 
        public EBCommonObj() 
        { 
            dbo = new DBOperate(); 
        } 
        ~EBCommonObj() 
        { 
            dbo.Dispose(); 
            Dispose(); 
        } 
        protected virtual void Dispose(bool isDisposing) 
        { 
            if (_alreadyDispose) return; 
            if (isDisposing) 
            { 
                dbo.Dispose(); 
            } 
            _alreadyDispose = true; 
        } 
        #endregion 
        #region IDisposable 成员 
        public void Dispose() 
        { 
            Dispose(true); 
            GC.SuppressFinalize(this); 
        } 
        #endregion 
        #region 通用删除数据库中的某条记录 
        /// <summary> 
        /// 通用删除数据库中的某条记录 
        /// </summary> 
        /// <param name="tbl">数据表名</param> 
        /// <param name="fld">字段名</param> 
        /// <param name="IsInt">是否是int型</param> 
        /// <param name="kev">关键词值</param> 
        public void CommDelByID(string tbl, string fld, bool IsInt, string key) 
        { 
            sql = "delete from {0} where {1}="; 
            if (IsInt) 
            { 
                sql += "{3}"; 
            } 
            else 
            { 
                sql += "'{3}'"; 
            } 
            dbo.ExecuteNonQuery(string.Format(sql, tbl, fld, IsInt, key)); 
        } 
        #endregion 
        #region 通用读取数据库中的某条记录 
        /// <summary> 
        /// 通用读取数据库中的某条记录 
        /// </summary> 
        /// <param name="tbl"></param> 
        /// <param name="fld"></param> 
        /// <param name="IsInt"></param> 
        /// <param name="key"></param> 
        /// <returns></returns> 
        public DataSet CommReadByID(string tbl,string fld,bool IsInt,string key) 
        { 
            sql = "select * from {0} where {1}="; 
            if (IsInt) 
            { 
                sql += "{3}"; 
            } 
            else 
            { 
                sql += "'{3}'"; 
            } 
            ds = dbo.GetDataSet(string.Format(sql, tbl, fld, IsInt, key)); 
            return ds;         
        } 
        #endregion 
        #region 修改数据库中的某条记录为true 或flase 
        /// <summary> 
        /// 修改数据库中的某条记录为true 或flase 
        /// </summary> 
        /// <param name="tbl">表格式</param> 
        /// <param name="fld">主键标识</param> 
        /// <param name="Isint">是否整形</param> 
        /// <param name="key">主键</param> 
        /// <param name="flgfld">flase键</param> 
        /// <param name="flgkey">key值</param> 
        public void CommUpdateByID(string tbl,string fld,bool Isint,string key,string flgfld,int flgkey) 
        { 
            sql = "update {0} set {4}={5} where {1}="; 
            if (Isint) 
            { 
                sql += "{3}"; 
            } 
            else 
            { 
                sql += "'{3}'"; 
            } 
            dbo.ExecuteNonQuery(string.Format(sql, tbl, fld, Isint, key, flgfld, flgkey)); 
        } 
        #endregion 
        #region 绑定DropDown 列表 
        /// <summary> 
        /// 绑定DropDown 列表 
        /// </summary> 
        /// <param name="tbl">表名</param> 
        /// <param name="selValue">下拉框值</param> 
        /// <param name="selText">下拉框显示内容</param> 
        /// <param name="strWhere">where 条件语句 不用加where 没有条件则为空</param> 
        /// <param name="dr">DropDownList控件名称</param> 
        public void DropBind(string tbl, string selValue, string selText, string strWhere,System.Web.UI.WebControls.DropDownList dr) 
        { 
            ds = GetDrop(tbl, selValue, selText, strWhere); 
            dr.DataSource = ds; 
            dr.DataTextField = selText; 
            dr.DataValueField = selValue; 
            dr.DataBind(); 
            ds.Clear(); 
            ds.Dispose(); 
        } 
        /// <summary> 
        /// 读取表中数据 
        /// </summary> 
        /// <param name="tbl"></param> 
        /// <param name="selValue"></param> 
        /// <param name="selText"></param> 
        /// <param name="strWhere">条件</param> 
        /// <returns></returns> 
        public DataSet GetDrop(string tbl,string selValue,string selText,string strWhere) 
        { 
            sql = "select {1},{2} from {0} where 1=1 and {3}"; 
            ds = dbo.GetDataSet(string.Format(sql, tbl, selValue, selText, strWhere)); 
            return ds;         
        }        
        #endregion 
        #region 判断是否有数据 
        /// <summary> 
        /// 判断是否有数据:存在数据时返回true,否则返回Flash 
        /// </summary> 
        /// <param name="tbl">数据表名</param> 
        /// <param name="fld">字段名</param> 
        /// <param name="key">关键词</param> 
        /// <param name="IsKeyInt">是否是数字类型:是:true;否:false</param> 
        /// <returns>true或false</returns> 
        public bool IsHaveDate(string tbl,string fld,string key,bool IsKeyInt) 
        { 
            bool Rev = false; 
            if (IsKeyInt) 
            { 
                sql = "select * from {0} where {1}={2}"; 
            } 
            else 
            { 
                sql = "select * from {0} where {1}='{2}'"; 
            } 
            ds = dbo.GetDataSet(string.Format(sql, tbl, fld, key)); 
            if (ds.Tables[0].Rows.Count > 0) 
            { 
                Rev = true; 
            } 
            return Rev; 
        } 
        #endregion 
    } 
} 
/############################################ 
版权声明: 
文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必标明文章原始出处及本声明 
  作者:浪淘沙 
############################################/ 
/********************************************************************************** 
 *  
 * 功能说明:数据操作基类,可以执行内联SQL语句和存储过程 
 * 作者: 刘功勋; 
 * 版本:V0.1(C#2.0);时间:2006-4-28 
 *  
 * *******************************************************************************/ 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
namespace EC 
{ 
    /// <summary> 
    /// 数据库连接及操作对象类 
    /// </summary> 
    public class DBBase 
    { 
        private bool _alreadyDispose = false; 
        private System.Data.SqlClient.SqlConnection conn; 
        private System.Data.SqlClient.SqlCommand com; 
        #region 构造与柝构 
        public DBBase() 
        { 
            try 
            { 
                conn=new System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]); 
                conn.Open(); 
                com = new System.Data.SqlClient.SqlCommand(); 
                com.Connection = conn; 
            } 
            catch (Exception ee) 
            { 
                throw new Exception("连接数据库出错"); 
            } 
        } 
        ~DBBase() 
        { 
            Dispose(); 
        } 
        protected virtual void Dispose(bool isDisposing) 
        { 
            if (_alreadyDispose) return; 
            if (isDisposing) 
            { 
                // TODO: 此处释放受控资源  
                if (com != null) 
                { 
                    com.Cancel(); 
                    com.Dispose(); 
                } 
                if (conn != null) 
                { 
                    try 
                    { 
                        conn.Close(); 
                        conn.Dispose(); 
                    } 
                    catch (Exception ee) 
                    { 
                    } 
                    finally 
                    { 
                        conn = null; 
                    } 
                } 
            } 
            // TODO: 此处释放非受控资源。设置被处理过标记  
            _alreadyDispose = true; 
        } 
        #endregion 
        #region IDisposable 成员 
        public void Dispose() 
        { 
            Dispose(true); 
            GC.SuppressFinalize(this); 
        } 
        #endregion 
        #region 数据基本操作 
        /// <summary> 
        /// ExecuteNonQuery 
        /// </summary> 
        /// <param name="sqlString">SQL语句</param> 
        /// <returns>返回影响行数</returns> 
        public int ExecuteNonQuery(string sqlString) 
        { 
            int ret = 0; 
            com.CommandText = sqlString; 
            com.CommandType = CommandType.Text; 
            try 
            { 
                ret = com.ExecuteNonQuery(); 
            } 
            catch (Exception ee) 
            { 
                throw new Exception("SQL:" + sqlString + "<br />" + ee.Message.ToString()); 
            } 
            finally 
            { 
                com.Cancel(); 
            } 
            return ret; 
        } 
        /// <summary> 
        /// 执行插入语句返回IDENTITY 
        /// </summary> 
        /// <param name="sqlString">SQL语句</param> 
        /// <returns>@@IDENTITY</returns> 
        public int ExecInsert(string sqlString) 
        { 
            int identity = 0; 
            //仅能执行Insert into 语句 
            if (!sqlString.ToLower().Contains("insert into")) 
            { 
                return -1; 
            } 
            sqlString += " Select @@IDENTITY"; 
            System.Data.DataSet ds = new DataSet(); 
            try 
            { 
                System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sqlString, conn); 
                da.Fill(ds); 
                da.Dispose(); 
            } 
            catch (Exception ee) 
            { 
                throw new Exception("SQL:" + sqlString + "<br />" + ee.Message.ToString()); 
            } 
            if (ds.Tables[0].Rows.Count > 0) 
            { 
                identity =Convert.ToInt32(ds.Tables[0].Rows[0][0]); 
            } 
            ds.Clear(); 
            ds.Dispose(); 
            return identity; 
        } 
        /// <summary> 
        /// 执行SQL语句返回记录集 
        /// </summary> 
        /// <param name="sqlString">SQL语句</param> 
        /// <returns>DataSet</returns> 
        public DataSet GetDataSet(string sqlString) 
        { 
            System.Data.DataSet ds = new DataSet(); 
            try 
            { 
                System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sqlString, conn); 
                da.Fill(ds); 
                da.Dispose(); 
            } 
            catch (Exception ee) 
            { 
                throw new Exception("SQL:" + sqlString + "<br />" + ee.Message.ToString()); 
            } 
            return ds; 
        } 
        /// <summary> 
        /// 执行存储过程(返回N种参数) 
        /// </summary> 
        /// <param name="procName">过程名</param> 
        /// <param name="hashtable">传入的参数表</param> 
        /// <param name="hashtable1">传出的参数表</param> 
        /// <returns>返回参数表</returns> 
        public System.Collections.Hashtable ExecProcedure(string procName, System.Collections.Hashtable hashtable, System.Collections.Hashtable hashtable1) 
        { 
            System.Collections.Hashtable hashtable2 = new System.Collections.Hashtable(); 
            System.Collections.IDictionaryEnumerator ide = hashtable.GetEnumerator(); 
            System.Collections.IDictionaryEnumerator ide1 = hashtable1.GetEnumerator(); 
            com.CommandType = CommandType.StoredProcedure; 
            com.CommandText = procName; 
            while (ide.MoveNext()) 
            { 
                System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter(ide.Key.ToString(), ide.Value); 
                com.Parameters.Add(p); 
            } 
            while (ide1.MoveNext()) 
            { 
                System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter(ide1.Key.ToString(), ide.Value); 
                com.Parameters.Add(p); 
            } 
            try 
            { 
                com.ExecuteNonQuery(); 
                ide1 = hashtable1.GetEnumerator(); 
                while (ide1.MoveNext()) 
                { 
                    string k = ide1.Key.ToString(); 
                    hashtable2.Add(k, com.Parameters[k].Value); 
                } 
            } 
            catch (Exception ee) 
            { 
                throw new Exception(ee.Message.ToString()); 
            } 
            finally 
            { 
                com.Cancel(); 
            } 
            return hashtable2; 
        } 
1
您可能感兴趣的文章:
