MVC常见的控制器,接口,数据层之间的操作
user_books_info 类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | namespace CiWong.LearningLevel.Mapping { public class user_books_info { /// <summary> /// 使用对象ID,个人版存放会员ID,班级版存放班级ID,校园版存放校园ID /// </summary> public long user_id { get ; set ; } /// <summary> /// 购买类型(1=个人版,2=班级版,3=学校版) /// </summary> public Int16 purchase_type { get ; set ; } /// <summary> /// 题册ID /// </summary> public long book_id { get ; set ; } /// <summary> /// 课本名称 /// </summary> public string book_name { get ; set ; } /// <summary> /// 课本封面 /// </summary> public string book_cover { get ; set ; } /// <summary> /// 使用对象名称 /// </summary> public string user_name { get ; set ; } /// <summary> /// 使用类型(0=试用,1=已购买,2=赠送,3=校本课程) /// </summary> public int use_mode { get ; set ; } /// <summary> /// 添加时间 /// </summary> public DateTime create_time { get ; set ; } /// <summary> /// 首次购买时间 /// </summary> public DateTime bourght_time { get ; set ; } /// <summary> /// 最后一次续费时间 /// </summary> public DateTime last_paid_time { get ; set ; } /// <summary> /// 过期时间 /// </summary> public DateTime expire_date { get ; set ; } } } |
1,数据操作层(List<>)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | /// <summary> /// 获取我购买的书籍 /// </summary> /// <param name="userID"></param> /// <param name="pageIndex">页码</param> /// <param name="pageSize">条数</param> /// <returns></returns> public List<user_books_info> UserBookInfoGetByUserID( int userID, int pageIndex, int pageSize) { List<user_books_info> bookList = new List<user_books_info>(); string sql = @"CALL learn_user_books_info_getbyuserid(@UserID,@pageIndex,@pageSize);" ; MySqlParameter[] para = new MySqlParameter[] { new MySqlParameter( "@UserID" , userID), new MySqlParameter( "@pageIndex" , pageIndex), new MySqlParameter( "@pageSize" , pageSize) }; using ( var dr = MySqlHelper.ExecuteReader(DatabaseManager.Retrieve( "wc_learninglevel_read" ), sql, para)) { while (dr.Read()) { var bookInfo = new user_books_info(); bookInfo.user_id = dr.GetInt32( "user_id" ); bookInfo.purchase_type = dr.GetInt16( "purchase_type" ); bookInfo.book_id = dr.GetInt64( "book_id" ); bookInfo.book_name = dr.GetString( "book_name" ); bookInfo.book_cover = dr.GetString( "book_cover" ); bookInfo.user_name = dr.GetString( "user_name" ); bookInfo.use_mode = dr.GetInt32( "use_mode" ); bookInfo.create_time = dr.GetDateTime( "create_time" ); bookInfo.bourght_time = dr.GetDateTime( "bourght_time" ); //bookInfo.last_paid_time = dr.GetDateTime("last_paid_time"); bookInfo.expire_date = dr.GetDateTime( "expire_date" ); bookList.Add(bookInfo); } dr.Close(); } return bookList; } |
2,数据调用接口层(List<>)
1 2 3 4 5 6 7 8 | /// <summary> /// 获取我购买的书籍 /// </summary> /// <param name="userID"></param> /// <param name="pageIndex">页码</param> /// <param name="pageSize">条数</param> /// <returns></returns> List<user_books_info> UserBookInfoGetByUserID( int userID, int pageIndex, int pageSize); |
3,控制器
1 | ViewBag.UserLearns = this ._Repository.UserBookInfoGetByUserID(userID, 1, 11); //购买的书籍 |
A, 数据操作层(IEnumerable<>)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /// <summary> /// 获取文章列表 /// </summary> /// <param name="userID">用户ID</param> /// <param name="totalItem">总数据量</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">每页数量</param> /// <param name="IsDelete">删除状态</param> /// <returns></returns> public IEnumerable<BlogContent> GetBlogContents( int userID, ref int totalItem, int pageIndex = 1, int pageSize = 20, bool IsFriend = false , bool IsManager = false ) { List<BlogContent> _list = new List<BlogContent>(); MySqlConnection conn = new MySqlConnection(ConnectionString); MySqlDataReader dr = null ; try { conn.Open(); totalItem = Convert.ToInt32(MySqlHelper.ExecuteScalar(conn, string .Format( "SELECT COUNT(0) FROM BlogContent WHERE uid=@uid AND IsDelete=0 AND IsPublished=1 {0}" , IsManager ? string .Empty : IsFriend ? "AND IsPublic<=1" : "AND IsPublic=0" ), new MySqlParameter( "@uid" , userID))); if (totalItem > 0) { string sql = @"SELECT Id,CateId,Title,Intro,Published,Created, ViewNums,CopNums,IsPublic,IsTop,IsPublished, Iscopied,OriginID,uid,OrignAccountId,OriginAccountName,Flowers FROM BlogContent WHERE uid=@uid AND IsDelete=0 AND IsPublished=1 {0} ORDER BY IsTop DESC,Id DESC LIMIT @Begin,@Size" ; dr = MySqlHelper.ExecuteReader(conn, string .Format(sql, IsManager ? string .Empty : IsFriend ? "AND IsPublic<=1" : "AND IsPublic=0" ), new MySqlParameter( "@uid" , userID), new MySqlParameter( "@Begin" , (pageIndex - 1) * pageSize), new MySqlParameter( "@Size" , pageSize)); while (dr.Read()) { _list.Add( new BlogContent() { Id = dr.GetInt64(0), CateId = dr.GetInt64(1), Title = dr.GetString(2), Intro = dr.GetString(3), Published = dr.GetDateTime(4), Created = dr.GetDateTime(5), ViewNums = dr.GetInt32(6), CopNums = dr.GetInt32(7), IsPublic = dr.GetByte(8), IsTop = dr.GetBoolean(9), IsPublished = dr.GetBoolean(10), Iscopied = dr.GetBoolean(11), OriginID = dr.GetInt64(12), uid = dr.GetInt32(13), OrignAccountId = dr.GetInt32(14), OriginAccountName = dr.GetString(15), Flower = dr.GetInt32(16) }); } } } catch (MySqlException e) { throw e; } finally { if ( null != dr) dr.Close(); conn.Close(); } return _list; } |
B,数据操作接口层(IEnumerable<>)
1 2 3 4 5 6 7 8 9 10 | /// <summary> /// 获取文章列表 /// </summary> /// <param name="userID">用户ID集合</param> /// <param name="totalItem">总数据量</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">每页数量</param> /// <param name="IsDelete">删除状态</param> /// <returns></returns> IEnumerable<BlogContent> GetBlogContents(List< int > userIDs, ref int totalItem, int pageIndex = 1, int pageSize = 20, bool IsFriend = false , bool IsManager = false ); |
C,控制器
1 | var blogs1 = _blogManager.GetBlogContents(zone.UserID, ref totalItem, page, 10).ToList(); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律