CYQ.Data 数据层框架CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目(QQ群:6033006)。 |
CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)
平台动态 |
|
|
| #楼主 |
事件的结果经过多天的思考及忙碌的开发及测试,CYQ.Data 终于在UI上全面支持WPF,至此,CYQ.Data 已经可以方便支持wpf的开发,同时,框架仍保留最低.net framework2.0版本的支持。支持WPF的起因:CYQ.Data 一直是基于2.0语法下支持开发的框架,在未直接支持WPF之前,对于控件列表的绑定,需要从MDataTable.ToDataTable().DefaultView来转一次绑定,对于UI控件,也只能原始的赋值。 由于很少接触WPF,同时想保留最低2.0版本支持的底线,一直没怎么潜心研究对WPF如何更好的支持。 最近有两个契机,让我想支持WPF的开发: 1:我重新看了下WPF的一些基础开发知识。 2:第N次见到了扩展方法,突然似乎想到了什么。 于是,花了三天的时间左右,终于全面测试通过支持上WPF,当然,框架仍保留最低2.0版本支持。 WPF下的测试案例: 示例界面:内容包括WPF下增删改查: 案例代码: 使用CYQ.Data CodeFirst 用文本数据库示例一个Users表: class Users:CYQ.Data.Orm.OrmBase { public Users() { base.SetInit(this, "Users", "txt path={0};ts=0"); } public int ID { get; set; } public string Name { get; set; } public bool IsEnabled { get; set; } public string TypeName { get; set; } public DateTime CreateTime { get; set; } } 添加(Add按钮):采用自动取值,不用单个控件式的u.GetFrom(txtName); private void btnAdd_Click(object sender, RoutedEventArgs e) { using (Users u = new Users()) { u.SetAutoParentControl(this); if (u.Insert(true, InsertOp.Fill)) { u.SetToAll(this); } } } 更新(Update按钮):同样采用自动式取值。 private void btnUpdate_Click(object sender, RoutedEventArgs e) { using (Users u = new Users()) { u.SetAutoParentControl(this); if (u.Update(txtID.Text, true)) { Load(); } } } 删除(Delete按钮):只需要一个ID。 private void btnDelete_Click(object sender, RoutedEventArgs e) { using (Users u = new Users()) { u.Delete(txtID.Text); } } 单个查询(Fill):根据ID查询后,自动批量赋值。 private void btnFill_Click(object sender, RoutedEventArgs e) { using (Users u = new Users()) { if (u.Fill(txtID.Text)) { u.SetToAll(this); } } } 列表控件绑定(默认窗体Loaded事件调用):直接支持绑定WPF的DataGrid控件。 void Load() { using (Users u = new Users()) { u.Select().Bind(gvUsers); } } 在整个增删改查中,我们几乎不涉及到具体的控件(除了ID示例中具体到txtID这个控件),都是采用自动化取值和赋值实现的功能,这种自动化方式,相信对于一些自定义表单式的开发,那是如虎添翼了,这就是在UI支持的强大。 相同的代码,在WebForm和传统Winform,也是一样的。 本节就介绍到这里,在这三天的思考过程和实现中遇到的问题,将由下篇文章写一下技术要点。 |
游客[注册][175.51.2.*]2014/1/8 11:17:25 | #1 | |
=下一遍 |
发表评论
论坛公告
帖子搜索
最新帖子
最新评论
- 请教博主。我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年就过了!!!!