能用存储过程的DBHelper类

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Data;  
using System.Data.SqlClient;  
  
namespace Book.DAL  
{  
    public class DBHelper  
    {  
        private SqlConnection conn = null;  
        private SqlCommand cmd = null;  
        private SqlDataReader sdr = null;  
        public DBHelper()  
        {  
            string connStr = "data Source=.;database=MYBOOKSHOP;uid=sa;pwd=123";  
            conn = new SqlConnection(connStr);  
        }  
  
        private SqlConnection GetConn()  
        {  
            if (conn.State == ConnectionState.Closed)  
            {  
                conn.Open();  
            }  
            return conn;  
        }  
  
        /// <summary>  
        ///  执行不带参数的增删改SQL语句或存储过程  
        /// </summary>  
        /// <param name="cmdText">增删改SQL语句或存储过程</param>  
        /// <param name="ct">命令类型</param>  
        /// <returns></returns>  
        public int ExecuteNonQuery(string cmdText, CommandType ct)  
        {  
            int res;  
            try  
            {  
                cmd = new SqlCommand(cmdText, GetConn());  
                cmd.CommandType = ct;  
                res = cmd.ExecuteNonQuery();  
            }  
            catch (Exception ex)  
            {  
                throw ex;  
            }  
            finally  
            {  
                if (conn.State == ConnectionState.Open)  
                {  
                    conn.Close();  
                }  
            }  
            return res;  
        }  
  
        /// <summary>  
        ///  执行带参数的增删改SQL语句或存储过程  
        /// </summary>  
        /// <param name="cmdText">增删改SQL语句或存储过程</param>  
        /// <param name="ct">命令类型</param>  
        /// <returns>int值</returns>  
        public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)  
        {  
            int res;  
            using (cmd = new SqlCommand(cmdText, GetConn()))  
            {  
                cmd.CommandType = ct;  
                cmd.Parameters.AddRange(paras);  
                res = cmd.ExecuteNonQuery();  
            }  
            return res;  
        }  
  
        /// <summary>  
        ///  执行查询SQL语句或存储过程  
        /// </summary>  
        /// <param name="cmdText">查询SQL语句或存储过程</param>  
        /// <param name="ct">命令类型</param>  
        /// <returns>Table值</returns>  
        public DataTable ExecuteQuery(string cmdText, CommandType ct)  
        {  
            DataTable dt = new DataTable();  
            cmd = new SqlCommand(cmdText, GetConn());  
            cmd.CommandType = ct;  
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
            {  
                dt.Load(sdr);  
            }  
            return dt;  
        }  
  
        /// <summary>  
        ///  执行带参数的查询SQL语句或存储过程  
        /// </summary>  
        /// <param name="cmdText">查询SQL语句或存储过程</param>  
        /// <param name="paras">参数集合</param>  
        /// <param name="ct">命令类型</param>  
        /// <returns>Table值</returns>  
        public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)  
        {  
            DataTable dt = new DataTable();  
            cmd = new SqlCommand(cmdText, GetConn());  
            cmd.CommandType = ct;  
            cmd.Parameters.AddRange(paras);  
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
            {  
                dt.Load(sdr);  
            }  
            return dt;  
        }  
  
  
        /// <summary>  
        /// 执行带参数的Scalar查询  
        /// </summary>  
        /// <param name="cmdText">查询SQL语句或存储过程</param>  
        /// <param name="paras">参数集合</param>  
        /// <param name="ct">命令类型</param>  
        /// <returns>一个int型值</returns>  
        public int ExecuteCheck(string cmdText, SqlParameter[] paras, CommandType ct)  
        {  
            int result;  
            using (cmd = new SqlCommand(cmdText, GetConn()))  
            {  
                cmd.CommandType = ct;  
                cmd.Parameters.AddRange(paras);  
                result = Convert.ToInt32(cmd.ExecuteScalar());  
            }  
            return result;  
        }  
    }  
}  

用法

    // 判断用户名密码是否正确  
            public bool CheckUser(string LoginId, string LoginPwd)  
            {  
                bool check = false;  
                string cmdText = "procCheckUser";  
                SqlParameter[] parm = new SqlParameter[]  
                {  
                    new SqlParameter("@LoginId",LoginId),  
                    new SqlParameter("@LoginPwd",LoginPwd)  
                };  
                int one = dh.ExecuteCheck(cmdText, parm, CommandType.StoredProcedure);  
                if (one > 0)  
                {  
                    return true;  
                }  
                return check;  
            }  
      
      
       
      
      
            //根据图书类型显示该类型所有图书  
            public DataTable SelectAllByType(int TypeId)  
            {  
                string cmdText = "procSelectAllByType";  
                SqlParameter[] parm = new SqlParameter[]{  
                    new SqlParameter("@TypeId",TypeId)  
                    };  
                dt = dh.ExecuteQuery(cmdText, parm, CommandType.StoredProcedure);  
                return dt;  
            }  
原文地址:https://www.cnblogs.com/vip-ygh/p/3955336.html