zoukankan      html  css  js  c++  java
  • 基于三层架构项目下的Ado【六】

    一、基于三层架构项目下的Ado增删改查总结,提示:现在一般都是使用EF框架操作。

    1. 先在model层创建出一个和你将会查询出一样类型的表,比如你将查询出的有五个字段,那么你就需要创建出一个和你查询出的对象一样五个字段的类。大致如下:

     1 {
     2 
     3    public class UserInfo
     4     {
     5        public int Id { get; set; }
     6        public string UserName { get; set; }
     7        public string UserPass { get; set; }
     8        public DateTime RegTime { get; set; }
     9        public string Email { get; set; }
    10     }
    11 }

    2.1 . 在DAL(数据层) 新建类Sqlhelper用来查询数据,将查询出的数据暂时放在datatable中,但是前端不能解析datatable数据。因为该段代码是重复的,所以需要这样封装起来,直接看代码:

     1   private static readonly string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
     2        /// <summary>
     3        /// 用来查询数据,将查询出的数据暂时放在datatable中,但是前端不能解析datatable数据
     4        /// </summary>
     5        /// <param name="sql">查询语句</param>
     6        /// <param name="type">类型</param>
     7        /// <param name="pars">需要传递的参数</param>
     8        /// <returns></returns>
     9        public static DataTable GetDataTable(string sql,CommandType type,params SqlParameter[]pars)
    10        {
    11            using (SqlConnection conn = new SqlConnection(connStr))
    12            {
    13                using (SqlDataAdapter apter = new SqlDataAdapter(sql, conn))
    14                {
    15                    if (pars != null)
    16                    {
    17                        apter.SelectCommand.Parameters.AddRange(pars);
    18                    }
    19                    apter.SelectCommand.CommandType = type;
    20                    DataTable da = new DataTable();
    21                    apter.Fill(da);
    22                    return da;
    23                }
    24            }
    25        }

    2.2 对datatable进行解析,并且执行以下操作,其实就是分为带参数的和不带参数的。其余只是把查询语句换一下即可

      不带参数的查:

     1     public List<UserInfo> GetList()
     2         {
     3             string sql = "select * from UserInfo";
     4             DataTable da = SqlHelper.GetDataTable(sql, CommandType.Text);
     5             List<UserInfo> list = null;
     6             if (da.Rows.Count > 0)
     7             {
     8                 list = new List<UserInfo>();
     9                 UserInfo userInfo = null;
    10                 foreach (DataRow row in da.Rows)
    11                 {
    12                     userInfo = new UserInfo();
    13                     LoadEntity(userInfo, row);
    14                     list.Add(userInfo);
    15                 }
    16             }
    17             return list;
    18         }

      带参数的查:

     1 public int AddUserInfo(UserInfo userInfo)
     2         {
     3             string sql = "insert into UserInfo(UserName,UserPass,RegTime,Email) values(@UserName,@UserPass,@RegTime,@Email)";
     4             SqlParameter[] pars = { 
     5                                 new SqlParameter("@UserName",SqlDbType.NVarChar,32),
     6                                   new SqlParameter("@UserPass",SqlDbType.NVarChar,32),
     7                                          new SqlParameter("@RegTime",SqlDbType.DateTime),
     8                                     new SqlParameter("@Email",SqlDbType.NVarChar,32)
     9                                
    10                                 
    11                                 };
    12             pars[0].Value = userInfo.UserName;
    13             pars[1].Value = userInfo.UserPass;
    14             pars[2].Value = userInfo.RegTime;
    15             pars[3].Value = userInfo.Email;
    16             return SqlHelper.ExecuteNonquery(sql, CommandType.Text, pars);
    17 
    18         }

    3. BLL(业务层)调用

    1  public List<UserInfo> GetList()
    2        {
    3            return UserInfoDal.GetList();
    4 
    5        }

    总结:大致就是这样,谢谢学习,有哪里不懂的可以留言。

  • 相关阅读:
    EC中的QEvent
    Host是如何与EC通信的
    Python随笔之元组
    Vuex的基本使用
    运行新项目时先在项目目录下运行下面代码,安装依赖node_modules
    前端代码编辑时要注意大小写
    vue3.0的setup函数的使用
    angular写的一个导航栏
    Java数组的工具类
    eclipse格式化代码快捷键失效
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10729745.html
Copyright © 2011-2022 走看看