zoukankan      html  css  js  c++  java
  • asp.net数据库连接,三层架构方法调用 (转)

    asp.net数据库连接,三层架构方法调用
    一、web.config配置
    <connectionStrings/>
     <!-- 数据库连接关键字 -->
     <appSettings>
      <add key="ConnectionKey" value="Data Source=192.168.100.31;Initial Catalog=stock;User ID=sa;password=123;max pool size=10;min pool size=6"/>
     </appSettings>
     <system.web>

    下面的是语言配置
    <globalization culture="zh-CN" uiCulture="zh-CN" requestEncoding="gb2312" responseEncoding="gb2312"/>
    注意他的位置,不能弄错了。
    二、建立数据库的连接
    public class GetConn
    {
        
    public GetConn()
        
    {
            
    //
            
    // TODO: 在此处添加构造函数逻辑
            
    //
        }

        
    private static SqlConnection conn = null;
        
    /// <summary>
        
    /// 返回数据库的连接
        
    /// </summary>

        public SqlConnection Conn
        
    {
            
    get
            
    {
                
    if (conn == null)//如果为空,则创建,否则直接返回对象,单键模式,减少对象的重复创建。
                {
                    
    string url = ConfigurationSettings.AppSettings["ConnectionKey"];
                    conn 
    = new SqlConnection(url);
                }

                
    return conn;
            }

        }

    }
    三、数据库方法调用
    假设数据库里有一个用户表,下面是关于用户表的方法,查询,删除,修改
    public class User
    {
        
    public User()
        
    {
            
    //
            
    // TODO: 在此处添加构造函数逻辑
            
    //
        }

        GetConn conn 
    = new GetConn();
        
    /// <summary>
        
    /// 根据条件获取用户信息
        
    /// </summary>
        
    /// <param name="UserName"></param>
        
    /// <returns></returns>

        public DataTable SelectUsersDynamic(string WhereCondition, string OrderByExpression)
        
    {
            DataTable dt 
    = new DataTable();
            SqlCommand comm 
    = new SqlCommand("SelectUsersDynamic", conn.Conn);
            comm.CommandType 
    = CommandType.StoredProcedure;
            comm.Parameters.Add(
    "@WhereCondition", SqlDbType.NVarChar, 500);
            comm.Parameters[
    "@WhereCondition"].Value = WhereCondition;
            comm.Parameters[
    "@WhereCondition"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@OrderByExpression", SqlDbType.NVarChar, 250);
            comm.Parameters[
    "@OrderByExpression"].Value = OrderByExpression;
            comm.Parameters[
    "@OrderByExpression"].Direction = System.Data.ParameterDirection.Input;
            SqlDataAdapter adapter 
    = new SqlDataAdapter(comm);
            adapter.Fill(dt);
            
    if (conn.Conn.State == ConnectionState.Open)
                conn.Conn.Close();
            
    return dt;
        }

        
    /// <summary>
        
    /// 查询所有用户信息
        
    /// </summary>
        
    /// <returns></returns>

        public DataTable SelectUsersAll()
        
    {
            DataTable dt 
    = new DataTable();
            SqlCommand comm 
    = new SqlCommand("SelectUsersAll", conn.Conn);
            comm.CommandType 
    = CommandType.StoredProcedure;       
            SqlDataAdapter adapter 
    = new SqlDataAdapter(comm);
            adapter.Fill(dt);
            
    if (conn.Conn.State == ConnectionState.Open)
                conn.Conn.Close();
            
    return dt;
        }

        
    /// <summary>
        
    /// 删除用户
        
    /// </summary>
        
    /// <param name="UserID"></param>
        
    /// <returns></returns>

        public int DeleteUser(int UserID)
        
    {
            SqlCommand comm 
    = new SqlCommand("DeleteUser", conn.Conn);
            
    if (conn.Conn.State == ConnectionState.Closed)
                conn.Conn.Open();
            comm.CommandType 
    = CommandType.StoredProcedure;
            comm.Parameters.Add(
    "@UserID", SqlDbType.Int, 4);
            comm.Parameters[
    "@UserID"].Value = UserID;
            comm.Parameters[
    "@UserID"].Direction = System.Data.ParameterDirection.Input;
            
    int counts = comm.ExecuteNonQuery();
            
    if (conn.Conn.State == ConnectionState.Open)
                conn.Conn.Close();
            
    return counts;
        }

        
    /// <summary>
        
    /// 修改用户信息
        
    /// </summary>
        
    /// <param name="UserID"></param>  
        
    /// <param name="IsSupplier"></param>
        
    /// <param name="RoleID"></param>
        
    /// <returns></returns>

        public int UpdateUser(int UserID,string UserName,int IsSupplier, int RoleID)
        
    {
            SqlCommand comm 
    = new SqlCommand("UpdateUser", conn.Conn);
            
    if (conn.Conn.State == ConnectionState.Closed)
                conn.Conn.Open();
            comm.CommandType 
    = CommandType.StoredProcedure;
            comm.Parameters.Add(
    "@UserID", SqlDbType.Int,4);
            comm.Parameters[
    "@UserID"].Value = UserID;
            comm.Parameters[
    "@UserID"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@UserName", SqlDbType.VarChar,20);
            comm.Parameters[
    "@UserName"].Value = UserName;
            comm.Parameters[
    "@UserName"].Direction = System.Data.ParameterDirection.Input;      
            comm.Parameters.Add(
    "@IsSupplier", SqlDbType.Int,4);
            comm.Parameters[
    "@IsSupplier"].Value = IsSupplier;
            comm.Parameters[
    "@IsSupplier"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@RoleID", SqlDbType.Int,4);
            comm.Parameters[
    "@RoleID"].Value = RoleID;
            comm.Parameters[
    "@RoleID"].Direction = System.Data.ParameterDirection.Input;
            
    int counts = comm.ExecuteNonQuery();
            
    if (conn.Conn.State == ConnectionState.Open)
                conn.Conn.Close();
            
    return counts;
        }

        
    /// <summary>
        
    /// 设置密码
        
    /// </summary>
        
    /// <param name="UserName"></param>
        
    /// <param name="Password"></param>
        
    /// <returns></returns>

        public int UpdateUserPassword(string UserName, string Password)
        
    {
            SqlCommand comm 
    = new SqlCommand("UpdateUserPassword", conn.Conn);
            
    if (conn.Conn.State == ConnectionState.Closed)
                conn.Conn.Open();
            comm.CommandType 
    = CommandType.StoredProcedure;
            comm.Parameters.Add(
    "@UserName", SqlDbType.VarChar,20);
            comm.Parameters[
    "@UserName"].Value = UserName;
            comm.Parameters[
    "@UserName"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@Password", SqlDbType.VarChar ,32);
            comm.Parameters[
    "@Password"].Value = Password;
            comm.Parameters[
    "@Password"].Direction = System.Data.ParameterDirection.Input;
            
    int counts = comm.ExecuteNonQuery();
            
    if (conn.Conn.State == ConnectionState.Open)
                conn.Conn.Close();
            
    return counts;
        }

        
    /// <summary>
        
    /// 新增用户
        
    /// </summary>
        
    /// <param name="UserName"></param>
        
    /// <param name="Password"></param>
        
    /// <param name="IsSupplier"></param>
        
    /// <param name="RoleID"></param>
        
    /// <returns></returns>

        public int InsertUser(string UserName, string Password, int IsSupplier, int RoleID,string SupplierCode)
        
    {
            SqlCommand comm 
    = new SqlCommand("InsertUser", conn.Conn);
            
    if (conn.Conn.State == ConnectionState.Closed)
                conn.Conn.Open();
            comm.CommandType 
    = CommandType.StoredProcedure;        
            comm.Parameters.Add(
    "@UserName", SqlDbType.NVarChar, 20);
            comm.Parameters[
    "@UserName"].Value = UserName;
            comm.Parameters[
    "@UserName"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@Password", SqlDbType.NVarChar, 32);
            comm.Parameters[
    "@Password"].Value = Password;
            comm.Parameters[
    "@Password"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@IsSupplier", SqlDbType.Int, 4);
            comm.Parameters[
    "@IsSupplier"].Value = IsSupplier;
            comm.Parameters[
    "@IsSupplier"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@RoleID", SqlDbType.Int, 4);
            comm.Parameters[
    "@RoleID"].Value = RoleID;
            comm.Parameters[
    "@RoleID"].Direction = System.Data.ParameterDirection.Input;
            comm.Parameters.Add(
    "@SupplierCode", SqlDbType.VarChar,200);
            comm.Parameters[
    "@SupplierCode"].Value = SupplierCode;
            comm.Parameters[
    "@SupplierCode"].Direction = System.Data.ParameterDirection.Input;
            
    int counts = comm.ExecuteNonQuery();
            
    if (conn.Conn.State == ConnectionState.Open)
                conn.Conn.Close();
            
    return counts;
        }

    }

    四、业务层的建立
    public class UserBLL
    {
        
    public UserBLL()
        
    {
            
    //
            
    // TODO: 在此处添加构造函数逻辑
            
    //
        }

        User user 
    = new User();
           
    /// <summary>
        
    /// 根据用户名获取用户信息
        
    /// </summary>
        
    /// <param name="UserName"></param>
        
    /// <returns></returns>

        public DataTable SelectUsersDynamic(string WhereCondition, string OrderByExpression)
        
    {
            
    return user.SelectUsersDynamic(WhereCondition, OrderByExpression);
        }

          
    /// <summary>
        
    /// 查询所有用户信息
        
    /// </summary>
        
    /// <returns></returns>

        public DataTable SelectUsersAll()
        
    {
            
    return user.SelectUsersAll();
        }

         
    /// <summary>
        
    /// 删除用户
        
    /// </summary>
        
    /// <param name="UserID"></param>
        
    /// <returns></returns>

        public int DeleteUser(int UserID)
        
    {
            
    return user.DeleteUser(UserID);
        }

         
    /// <summary>
        
    /// 修改用户信息
        
    /// </summary>
        
    /// <param name="UserID"></param>   
        
    /// <param name="IsSupplier"></param>
        
    /// <param name="RoleID"></param>
        
    /// <returns></returns>

        public int UpdateUser(int UserID, string UserName, int IsSupplier, int RoleID)
        
    {
            
    return user.UpdateUser(UserID,UserName,IsSupplier, RoleID);
        }

        
    /// <summary>
        
    /// 设置密码
        
    /// </summary>
        
    /// <param name="UserName"></param>
        
    /// <param name="Password"></param>
        
    /// <returns></returns>

        public int UpdateUserPassword(string UserName, string Password)
        
    {
            
    return user.UpdateUserPassword(UserName , new StockBaseBLL().MD5( Password,16));
        }

        
    /// <summary>
        
    /// 新增用户
        
    /// </summary>
        
    /// <param name="UserName"></param>
        
    /// <param name="Password"></param>
        
    /// <param name="IsSupplier"></param>
        
    /// <param name="RoleID"></param>
        
    /// <returns></returns>

        public int InsertUser(string UserName, string Password, int IsSupplier, int RoleID, string SupplierCode)
        
    {
            
    return user.InsertUser(UserName, Password, IsSupplier, RoleID,SupplierCode);
        }

    }

    上面的调用感觉像是多余的,其实不是的,他可以隔离表示层和数据库层的方法。还有如果对数据集要处理的话,也可以在这里处理好,然后返回给表示层。
    五、表示层调用
    这一层的调用我想就不写了,因为很简单,就是创建对象,然后调用。

  • 相关阅读:
    URAL 1998 The old Padawan 二分
    URAL 1997 Those are not the droids you're looking for 二分图最大匹配
    URAL 1995 Illegal spices 贪心构造
    URAL 1993 This cheeseburger you don't need 模拟题
    URAL 1992 CVS
    URAL 1991 The battle near the swamp 水题
    Codeforces Beta Round #92 (Div. 1 Only) A. Prime Permutation 暴力
    Codeforces Beta Round #7 D. Palindrome Degree hash
    Codeforces Beta Round #7 C. Line Exgcd
    Codeforces Beta Round #7 B. Memory Manager 模拟题
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/1023914.html
Copyright © 2011-2022 走看看