您的位置:首页 > 其它

Farseer.net轻量级开源框架 入门篇:增、删、改、查操作演示

2013-01-22 12:40 549 查看
导航

目 录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 入门篇: 使用前说明

下一篇:Farseer.net轻量级开源框架 入门篇: 逻辑层的选择

数据库结构
可以在这里 下载 源码(包括数据库)

首先,建立一个数据库:Farseer (以后的demo里,所有表都在这个库里)

如下图:表:Members_User

~/App_Data/db.config

<?xml version="1.0"?>
<DbConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DbList>
<DbInfo>
<Server>.</Server>
<UserID>sa</UserID>
<PassWord>123456</PassWord>
<DataType>SqlServer</DataType>
<DataVer>2005</DataVer>
<Catalog>Farseer</Catalog>
<PoolMinSize>16</PoolMinSize>
<PoolMaxSize>100</PoolMaxSize>
<ConnectTimeout>30</ConnectTimeout>
<CommandTimeout>60</CommandTimeout>
</DbInfo>
</DbList>
</DbConfig>


回顾完成的准备
实际上,我们只做了三件事情:

1:实体类创建

2:Web.config的数据库提供配置

3:db.config的数据库权限配置

页面中,添加操作

<table class="auto-style1">
<tr>
<td class="auto-style2">用户名</td>
<td><asp:TextBox ID="hlUserName" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td class="auto-style2">密码</td>
<td><asp:TextBox ID="hlPassWord" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td class="auto-style2">性别</td>
<td><asp:RadioButtonList ID="hlGenderType" runat="server" RepeatDirection="Horizontal"></asp:RadioButtonList></td>
</tr>
<tr>
<td colspan="2" align="center"><asp:Button ID="btnAdd" runat="server" Text="添加" /></td>
</tr>
</table>


void btnAdd_Click(object sender, EventArgs e)
{
// Users.Form 从表单Post接收的数据。
// 我们通过"前缀名称" + 实体属性名称 来定义各个html input控件的Name。达到自动转换成实体
// 前缀一般默认为:"hl" 代表html的意思
Users info = Users.Form();

// 检测实体类赋值情况。根据实体类的特性申明,进行判断
// 比如判断用户输入的字符长度、必填、数字类型、手机、邮箱类型(支持正则验证)
if (!info.Check()) { return; }

// 将值插入到数据库
// 因为ID是自增,所以不需要赋值,同时框架通过判断属性是否为null 来决定是保存要保存到数据库。
info.Insert();

// 弹出alert() js 框
JavaScript.Alert("注册成功!", "/");
}


页面中,修改操作

<table class="auto-style1">
<tr>
<td class="auto-style2">用户名</td>
<td><asp:TextBox ID="hl2UserName" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td class="auto-style2">密码</td>
<td><asp:TextBox ID="hl2PassWord" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td class="auto-style2">性别</td>
<td><asp:RadioButtonList ID="hl2GenderType" runat="server" RepeatDirection="Horizontal"></asp:RadioButtonList></td>
</tr>
<tr>
<td colspan="2" align="center"><asp:Button ID="btnSave" runat="server" Text="修改" Enabled="false" /></td>
</tr>
</table>


void btnSave_Click(object sender, EventArgs e)
{
// req的意思是Request的缩写,这样我们很容易判断出这个变量的意思
// QS全称是:Request.QueryString 派生自:BasePage实现的。其方法实现在:FS.Utils.Web.Req.QS 中
// 除此外,还有QF:Request.Form、QA:先执行QS,如果没值,再执行QF操作
// 第二个 0 的参数意思是 默认值 ,0 代表是整型。当转换不成功。则默认为0 可以传入任意基本类型,如:bool、string、decimal等等
var reqID = QS("ID", 0);

// Users.Form 从表单Post接收的数据。
// 我们通过"前缀名称" + 实体属性名称 来定义各个html input控件的Name。达到自动转换成实体
// 前缀一般默认为:"hl" 代表html的意思
Users info = Users.Form(null, "hl2");

// 检测实体类赋值情况。根据实体类的特性申明,进行判断
// 比如判断用户输入的字符长度、必填、数字类型、手机、邮箱类型(支持正则验证)
if (!info.Check()) { return; }

// 这里是更新到数据库的意思
// reqID 是通过标识字段的ID来判断。里面有多个重载版本。
// 框架通过判断属性是否为null 来决定是保存要保存到数据库。
info.Update(reqID);

// 弹出alert() js 框
JavaScript.Alert("修改成功!", "/");
}


页面中,列表操作

<table class="auto-style1" style="width: 800px">
<tr>
<td>系统编号</td>
<td>名称</td>
<td>密码</td>
<td>性别</td>
<td>登陆次数</td>
<td>登陆IP</td>
<td>操作</td>
</tr>
<FS:Repeater ID="rptList" runat="server">
<ItemTemplate>
<tr>
<td><%# ((Users)Container.DataItem).ID%></td>
<td><%# ((Users)Container.DataItem).UserName%></td>
<td><%# ((Users)Container.DataItem).PassWord%></td>
<td><%# ((Users)Container.DataItem).GenderType.GetName()%></td>
<td><%# ((Users)Container.DataItem).LoginCount%></td>
<td><%# ((Users)Container.DataItem).LoginIP%></td>
<td><a href="?oper=update&ID=<%# ((Users)Container.DataItem).ID%>">修改</a>
<a href="?oper=del&ID=<%# ((Users)Container.DataItem).ID%>">删除</a>
</td>
</tr>
</ItemTemplate>
<PaginationHtml><tr class="tdbg" align="center" style="height: 28px;"><td colspan="12"><Pagination /></td></tr></PaginationHtml>
</FS:Repeater>
</table>


// 数据分页、并绑定到Repeater中
// 这里的分页是真实的数据库先进行分页获取数据,然后再在Repeater中进行实现 上一页、下一页的操作显示
// rptList 是FS:Repeater控件 继承自原生的Repeater控件的基础上,实现上下页的菜单显示。
// ToList 传入rptList。实际是告诉ToList 我要从数据库获取第几页的数据,同时把数据库的Count总数,设置到Repeater中
rptList.Bind(Users.Data.ToList(rptList));


绑定枚举

// 绑定 性别 枚举 到控件中
// 通过对枚举的 [Display(Name = "男士")] 设置来显示中文
// 对于DropDownList、CheckBoxList、RadioButtonList、Repeater 的绑定操作是完全一样的哦
// 当然不仅仅是绑定枚举、包括你的List<User> 都可以。对于实体的中文显示,默认是Caption字段
hlGenderType.Bind(typeof(Users.eumGenderType));
hl2GenderType.Bind(typeof(Users.eumGenderType));


页面中,删除的操作

// Delete() 删除指定Where条件的数据
// ToList()、Delete、Update 都是在 Users.Data  下操作的哦
// 只要是继承自BaseModel,对数据库的操作都是在:对象名称.Data 下操作的
Users.Data.Where(o => o.ID == reqID).Delete();
JavaScript.Alert("删除成功", "/");


到此,我们经常操作的:保存、修改、列表、获取单条信息、删除的操作。都演示了一遍。

查看更齐全的代码。在这里 下载 源码(包括数据库)

导航

目 录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 入门篇: 使用前说明

下一篇:Farseer.net轻量级开源框架 入门篇: 逻辑层的选择

广告时间
QQ群:116228666 (Farseer.net开源框架交流) 请注明:[b]Farseer.Net[/b]

Farseer.Net是一款ORM框架 + 常用工具 + 扩展集合。

Farseer 意为:先知、预言家 通常在某些场合时,提供计谋、策略。也希望该框架能给大家提供最大化的便捷。

ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)

Farseer.Net的目标是:快速上手、快速开发、简单方便。

new User { ID = 1, Name = "张三" }.Insert()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: