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

    }

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

  • 相关阅读:
    Python 数据分析中金融数据的来源库和简单操作
    Python 数据分析中常用的可视化工具
    Pandas 时间序列处理
    Ubuntu 下使用 python3 制作读取 QR 码
    Ubuntu中找不到pip3命令的解决方法
    Ubuntu 中查找软件安装的位置
    将文件进行分类整理
    树的遍历
    Junit4知识梳理
    springboot中controller的使用
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/1023914.html
Copyright © 2011-2022 走看看