当前位置:编程学习 > C#/ASP.NET >>

程序瘦身问题~~

关于数据库连接,现在有三个button按钮,难道我要在三个button_Click函数中添加数据库连接的代码吗??还有,数据库什么时候关闭呢? --------------------编程问答-------------------- 可以把数据库访问放在一个公共类里面 --------------------编程问答-------------------- 呵呵 ,能说的再详细点么?怎么操作,然后再怎么调用。新手~~~
先谢过了~~ --------------------编程问答--------------------

        static readonly string conn = ConfigurationManager.ConnectionStrings["db"].ConnectionString;

        #region 提供一个SqlCommand对象的设置
        /// <summary>
        /// 提供一个SqlCommand对象的设置
        /// </summary>
        /// <param name="cmd">SqlCommand对象</param>
        /// <param name="conn">SqlConnection 对象</param>
        /// <param name="trans">SqlTransaction 对象</param>
        /// <param name="cmdType">CommandType 如存贮过程,T-SQL</param>
        /// <param name="cmdText">存贮过程名或查询串</param>
        /// <param name="cmdParms">命令中用到的参数集</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);
                }
            }
        }

        #endregion

        #region 此方法完成【普通的Sql】保存,更新,删除数据工作
        /// <summary>
        /// 此方法完成【普通的Sql】保存,更新,删除数据工作
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static void SqlOperator(string safeStatement)
        {
            using (SqlConnection con = new SqlConnection(conn))
            {
                con.Open();
                SqlTransaction trans = con.BeginTransaction();
                SqlCommand cmd = new SqlCommand(safeStatement, con);
                cmd.Transaction = trans;
                try
                {

                    
                    int val = cmd.ExecuteNonQuery();
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw ex;
                }
            }
        }
        #endregion

        #region 此方法完成【普通的Sql】的查询数据工作
        /// <summary>
        /// 此方法完成【普通的Sql】的查询数据工作
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static DataSet SqlQuery(string safeStatement)
        {
            DataSet ds = new DataSet();
            using (SqlConnection con = new SqlConnection(conn))
            {
                try
                {
                    con.Open();
                    SqlDataAdapter dap = new SqlDataAdapter(safeStatement, con);
                    dap.Fill(ds);
                }
                catch (Exception ex)
                {

                    throw ex;
                }

            }
            return ds;
        }
        #endregion

        

        #region 此方法完成【存储过程】查询数据工作
        /// <summary>
        ///  此方法完成【存储过程】查询数据工作
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="commandParameters"></param>
        /// <returns></returns>
        public static DataSet ProQuery(string ProName, params SqlParameter[] commandParameters)
        {
            SqlConnection con = new SqlConnection(conn);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            DataSet ds = new DataSet();
            try
            {
                PrepareCommand(cmd, con, null, CommandType.StoredProcedure, ProName, commandParameters);
                SqlDataAdapter dap = new SqlDataAdapter(cmd);
                dap.Fill(ds);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                    con.Close();
                cmd.Parameters.Clear();
            }
            return ds;
        }
        #endregion

        #region 此方法完成预编译查询数据工作
        public static DataSet PSqlQuery(string safeStatement, params SqlParameter[] commandParameters)
        {
            SqlConnection con = new SqlConnection(conn);
            con.Open();

            SqlCommand cmd = new SqlCommand(safeStatement, con);
            DataSet ds = new DataSet();
            try
            {

                
                foreach (SqlParameter p in commandParameters)
                {
                    cmd.Parameters.Add(p);          
                }

                SqlDataAdapter dap = new SqlDataAdapter(cmd);
                dap.Fill(ds);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                    con.Close();
                cmd.Parameters.Clear();
            }
            return ds;
        }
        #endregion

        #region 此方法完成预编译保存,更新,删除数据工作
        public static void PSqlOperator(string safeStatement, params SqlParameter[] commandParameters)
        {
            SqlConnection con = new SqlConnection(conn);
            con.Open();
            SqlTransaction trans = con.BeginTransaction();
            SqlCommand cmd = new SqlCommand(safeStatement, con, trans);
            try
            {


                foreach (SqlParameter p in commandParameters)
                {
                    cmd.Parameters.Add(p);
                }

                int val = cmd.ExecuteNonQuery();
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                throw ex;
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                    con.Close();
                cmd.Parameters.Clear();
            }
        }
        #endregion


        #region 此方法完成【普通的sql】的添加工作同时返回identity
        /// <summary>
        /// 此方法完成【普通的sql】的添加工作同时返回identity
        /// </summary>
        public static int getscalar(string safestatement)
        {
            int i = 0;

            using (SqlConnection sqlcon = new SqlConnection(conn))
            {
                sqlcon.Open();
                SqlCommand sqlcmd = new SqlCommand(safestatement, sqlcon);
                i = Convert.ToInt32(sqlcmd.ExecuteScalar());
            }
            return i;
        }

        #endregion

        /// <summary>
        /// 查询第一行第一列
        /// </summary>
        /// <param name="safeSql"></param>
        /// <returns></returns>
        #region 查询第一行,第一列
        public static int GetScalar(string safeSql)
        {
            SqlConnection con = new SqlConnection(conn);
            SqlCommand cmd = new SqlCommand(safeSql, con);
            int result = Convert.ToInt32(cmd.ExecuteScalar());
            return result;
        }
        #endregion
    }


看不懂就去微软上下一个数据库公共类~!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,