MVC常见的控制器,接口,数据层之间的操作
user_books_info 类
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<>)
/// <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<>)
/// <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,控制器
ViewBag.UserLearns = this._Repository.UserBookInfoGetByUserID(userID, 1, 11);//购买的书籍
A, 数据操作层(IEnumerable<>)
/// <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<>)
/// <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,控制器
var blogs1 = _blogManager.GetBlogContents(zone.UserID, ref totalItem, page, 10).ToList();
MVC常见的控制器,接口,数据层之间的操作的更多相关文章
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- ASP.NET MVC中的控制器激活与反射之间的联系(帮助理解)
ASP.NET Mvc是ASP.NET的一个框架,同样也是基于管道的设计结构.HttpModule和HttpHandler是ASP.NET的两个重要组件,同样的在Mvc中也是非常重要的组件.在应用程序 ...
- ASP.NET MVC之从控制器传递数据到视图四种方式(一)
前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎 ...
- ASP.NET MVC之从控制器传递数据到视图四种方式
前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎 ...
- ASP.NET MVC之从控制器传递数据到视图方式
为了演示,先定义一个类 新建基本项目在Models文件夹下定义如下类: public class Person { public int Id { get; set; } public string ...
- 【开源】OSharp框架解说系列(5.1):EntityFramework数据层设计
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- 【ASP.NET MVC系列】浅谈数据注解和验证
[ASP.NET MVC系列]浅谈数据注解和验证 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google C ...
- 使用Postman轻松实现接口数据关联
Postman Postman是一款非常流行的HTTP(s)接口测试工具,入门简单,界面美观,功能强大.作为一个测试/开发工程师,这是一款必须要会用的工具.今天以一个实际的案例,来介绍下Postman ...
- 【ASP.NET MVC系列】浅谈Google Chrome浏览器(操作篇)(下)
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
随机推荐
- 微信公众平台企业号验证接口、回调 PHP版
微信公众平台企业号验证接口.回调 PHP版,本人为了解决这个企业号的验证和发送消息的问题,整整研究了几天时间,由于微信企业号刚推出来,网上资料太少了!后来在一些朋友的帮助下和本人重复调试完好下,最终整 ...
- ASP.NET 5简介
ASP.NET 5简介 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介 2015-05-13 09:14 by 汤姆大叔, 3379 阅读, 39 评论, 收藏, 编辑 ...
- 6天通吃树结构—— 第五天 Trie树
原文:6天通吃树结构-- 第五天 Trie树 很有段时间没写此系列了,今天我们来说Trie树,Trie树的名字有很多,比如字典树,前缀树等等. 一:概念 下面我们有and,as,at,cn,com这些 ...
- HDU 5001 概率DP || 记忆化搜索
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP 測 ...
- 查询DBlink创建
DBlink创建 查询 博客分类: Oracle 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据 ...
- 如何查看IC卡燃气表读数和剩余量?
如今新建的楼房都是使用IC卡燃气表,拿到房子入住时也没有见到IC卡燃气表的使用说明书.非常多人可能为此而苦恼.这里就讲一下怎样查看IC卡燃气表读数及剩余金额. 产品外观 可选功能 watermark/ ...
- 在ubuntu下开发stm32f4-discovery
前面零散地记录了一些如何安装编译器,调试器等笔记,这里就准备开始着手试一下这整块系统了. 简单不完全地回顾一下所需要安装的软件: 1 编译器 使用的是codesourcey,因为之前有使用过该套编译器 ...
- 利用Delphi监视注册表的变化
转帖:利用Delphi监视注册表的变化 2009-12-23 11:53:51 分类: 利用Delphi监视注册表的变化 我们在编写软件的时候,常常需要把一些信息保存到系统的注册表中.如果 ...
- WCF总结笔记
------------------------windowform承载服务步骤: (1)定义契约: using System; using System.Collections.Generic; u ...
- [转]C# and the using Statement in 3 seconds and a bug in Reflector
Using() Statement in 3 seconds and a bug in Reflector The boring, known accross the board definition ...