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浏览器(操作 ...
随机推荐
- CSS定位:几种类型的position定位的元素
当人们刚接触布局的时候都比较倾向于使用定位的方式.因为定位的概念看起来好像比较容易掌握.表面上你确切地指定了一个块元素所处的位置那么它就会坐落于那里.可是定位比你刚看到的时候要稍微复杂一点.对于定位来 ...
- 【足迹C++primer】49、超载,变化,运营商
超载,变化,运营商 Conversion Operators 转换操作符 operator type() const Conversions to an array or a function typ ...
- 试想一下,在代码学习Swift!
文件 https://itunes.apple.com/us/book/the-swift-programming-language/id881256329?mt=11 htt ...
- 【百度地图API】如何制作班级地理通讯录?LBS通讯录
原文:[百度地图API]如何制作班级地理通讯录?LBS通讯录 摘要:班级通讯录必备的功能,比如人员列表,人员地理位置标注,展示复杂信息窗口,公交和驾车等.一般班级人员都不会超过300个,因为可以高效地 ...
- AIX加入能telnet远程连接方法的帐户
AIX 加入该账户可以使用命令mkuser 和 SMIT 两种方法,这里有SMIT方式 1.采用root 帐户登录AIX 2.输入 smitty user 3.选择Add a User 4.输入&qu ...
- Equals 和==
class Person { private string name; public string Name { get ...
- NET 2015
.NET 2015 英文原文:Understanding .NET 2015 Understanding 翻译为了解或理解,对于 .NET 来说,2015 年注定会更加精彩,所以标题就用了“精彩”这个 ...
- UIButton UIImage 用法分析
一.UIButton和UIImageView的区别 1.显示图片 1> UIImageView只能显示一种图片(图片默认会填充整个UIImageView) image\setImage: 2&g ...
- java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
java.lang.IllegalAccessError: tried to access field org.slf4j.impl.Static.. java.lang.IllegalAccessE ...
- 日积月累系列之省市选择器(js源码)
省市选择器是大家经常用到的, 但网上找的省市选择器都不是很实用,于是自己写了移动端的省市选择器. 界面: 源码结构: 演示地址:http://component.cform.cn/city/ 演示二维 ...