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);
        }

    }

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

  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/1023914.html
Copyright © 2011-2022 走看看