![]() | CYQ.Data 数据层框架CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目(QQ群:6033006)。 |
CYQ.Data 数据框架 版本发布 V2.5
平台动态 |
|
|
| #楼主 |
前言:
一直都是发布版本才写文章,这次为抢先体验版本[V2.5]做一下简单的功能介绍
以下进行功能更新说明[相比V2.0版本]: 1:修正DebugInfo属性在异常发生时无法取得操作语句的问题
2:MAction增加Bind方法可以轻松绑定DropDownList等控件 3:MDataTable增加ToList<T>泛型方法 4:修正MDataTable的ToJson方法 5:增加CYQ.Data.Orm.OrmBase抽象基类[为传统实体型ORM提供支持]
接着为功能进行示例操作,所有编写代码均放在Page_Load中:
一:调试信息输出
1:编写代码如下 MAction action = new MAction(TableNames.Users); if (!action.Fill("产生错误")) { Response.Write(action.DebugInfo); }
2:于是默认抛出异常
3:修改配置文件,启用日志记录,则不再抛异常 <appSettings><add key="IsWriteLog" value="true"/>appSettings>
4:这时候再运行,输出了DebugInfo 说明: 从上图可以看到所有数据库已执行的SQL语句,非常方便进行调试。
二:MAction的Bind功能演示
1:编写代码如下 new MAction(TableNames.Users).Bind(ddlUserName).Close(); 说明: ![]() ![]() Bind方法有三个重载方法:
public MAction Bind(object control) public MAction Bind(object control, string where) public MAction Bind(object control, string where, object text, object value) 说明:前面两个方法按约定取[控件id(去掉三个字母前缀)做为text字段+ID为value字段] control参数支持继承ListControl的所有控件如:DrowDownList/CheckBoxList/RadioButtonList等
2:演示结果如图
3:对应的html ![]() ![]() <select name="ddlUserName" id="ddlUserName"> <option value="1">路过秋天option> <option value="2">狼Robotoption> <option value="3">深蓝医生option> <option value="4">天才123option> <option value="5">天才123444option> <option value="9">goodboyoption> <option value="17">goodboyoption> select>
三:MDataTable的ToList
1:增加实体Users ![]() ![]() public class UsersDemo { private int _ID; public int ID { get { return _ID; } set { _ID = value; } } private string _Username; public string UserName { get { return _Username; } set { _Username = value; } } private string _Password; public string Password { get { return _Password; } set { _Password = value; } } private DateTime _CreateTime; public DateTime CreateTime { get { return _CreateTime; } set { _CreateTime = value; } } }
2:编写代码如下 ![]() ![]() MAction action = new MAction(TableNames.Users); MDataTable table = action.Select(); action.Close(); List<UsersDemo> listDemo = table.ToList<UsersDemo>();//转成泛型实体列表 gvUsers.DataSource = listDemo; gvUsers.DataBind();
3:演示结果
四:MDataTable的ToJson方法演示
1:编写代码如下 using (MAction action = new MAction(TableNames.Users)) { Response.Write(action.Select().ToJson()); }
2:输出结果 ![]() ![]() {"count":"7","error":"","success":"true", "data":[{"ID":"1","UserName":"路过秋天","Password":"http://cyq1162.cnblogs.com","CreateTime":"2010-8-21 14:01:07"}, {"ID":"2","UserName":"狼Robot","Password":"http://cyq1162.cnblogs.com","CreateTime":"2010-8-21 14:04:57"}, {"ID":"3","UserName":"深蓝医生","Password":"http://cyq1162.cnblogs.com","CreateTime":"2010-8-21 14:05:44"}, {"ID":"4","UserName":"天才123","Password":"http://cyq1162.cnblogs.com","CreateTime":"2010-9-4 14:57:28"}, {"ID":"5","UserName":"天才123444","Password":"http://cyq1162.cnblogs.com","CreateTime":"2010-9-4 15:00:20"}, {"ID":"9","UserName":"goodboy","Password":"abc","CreateTime":"2010-10-13 16:51:58"},{"ID":"17","UserName":"goodboy","Password":"333","CreateTime":"2010-10-13 17:09:34"}]}
五:支持传统ORM访问方式示例演示 说明:本功能由 圣殿骑士 留言引发。
1:实体继承CYQ.Data.Orm.OrmBase public class UsersDemo :CYQ.Data.Orm.OrmBase { public UsersDemo() { base.SetInit(this, "Users", "Conn"); } //...省略下面积的实体属性 } 说明: 1:需要继承基类:CYQ.Data.Orm.OrmBase 2:需要在构造函数初始化base.SetInit(this,"表名","数据库链接字符串/链接配置名称/为空时默认为Conn配置项");
2:编写代码演示[添加/更新/删除/查询/列表查询与绑定] ![]() ![]() protected void Page_Load(object sender, EventArgs e) { UsersDemo myUser = new UsersDemo(); myUser.UserName = "路过秋天-博客园"; myUser.Password = "http://cyq1162.cnblogs.com"; myUser.Insert();//插入一条数据 myUser.Password = "我更改了密码"; myUser.Update(); myUser.Delete(17);//删除id=17的数据 if (myUser.Fill(9))//单数据填充 { Response.Write(myUser.UserName); } myUser.Select().Bind(gvUsers);//查询Users表所有数据并绑定到GrivdView控件 List<UsersDemo> entityList = myUser.Select().ToList<UsersDemo>(); gvUsers2.DataSource = entityList;//转泛型再绑定 gvUsers2.DataBind(); }
3:结果演示
a:原来表数据
b:操作后结果数据
结言: 谢谢大家支持与喜欢,吾将持续做好框架更新工作继续前进。
![]() |
发表评论
论坛公告
帖子搜索
最新帖子
最新评论
- 请教博主。我mysql的提示 V5.7.7.4 MySql.xxxx:check the tablename "tbl_site_info" is exist? error:ExeDataReader():Expression #1 of ORDER BY clause is not in SELECT list, references column 'information_schema.s1.ORDINAL_POSITION' which is not in SELECT list; this is incompatible with DISTINCT 配置如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Conn" connectionString="host=192.168.3.101;Port=3306;Database=xxxxx;uid=root;pwd=2017" providerName="MySql.Data.MySqlClient"/> </connectionStrings> </configuration>
- 查询语句有点问题,软件启动时查询语句可以从数据库查询出数据,软件一直运行时无论怎么修改数据库,查询出来的还是老数据,不知道是为什么
- 我语句中用到了union all而且两个查询都有查询条件,action.select总是不成功,不知道有没有什么好的解决办法,谢谢
- 大神,如果我想通过一个对象(从数据映射过来的)要插入的话,我需要遍历字段然后每个set一下吗?有没有更好的方法??
- 真心好用,想问下秋天直接拼写sql怕注入吗
- V4.5后,好多方法都改变了,求来个新的日志帮助
- 請問大神V5源碼要多少錢 我是和交流過的
- 楼主,,从数据库里查出来并绑定datagridview,但是显示的都是数据库里的英文名,怎么改??好纠结啊这个。。。。
- 我想问一下,主从表添加怎样处理
- 10年就过了!!!!