![]() | CYQ.Data 数据层框架CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目(QQ群:6033006)。 |
CYQ.Data V4.5.5 版本发布
平台动态 |
|
|
| #楼主 |
前言: 继上一版本:CYQ.Data 数据框架 版本发布 V4.5,刷的一下又三个多月了, 进一步的说,从 CYQ.Data V4.5的发布到现在,是半年多了,今天,终于得发布新小版本了。 由于上一版本过于稳定,导致此版本无bug修正项,但是新增了几个重要的性能优化功能。 本版本新增加的功能预览 1:优化Access、SQLite数据库链接,以{0}代表根目录 好处:可以配置多个数据库链接,示例如:秋色园QBlog同时用了N个access数据库。 2:MAction增加指定列的查询功能:SetSelectColumns 好处:查询时可以指定列名,减少传输量。 3:增加AppDebug类,可以全局输出执行过的SQL语句 好处:随时掌控并打印页面SQL,直接分析和优化SQL语句。 4:增加FastToT的Emit类,提升大数据量时从MDataTable转List<T>的性能 好处:在返回数据量较大转实体时,可以利用Emit加快速度,提升性能。 5:关闭默认mssql/oracle的事务开启 好处:事务有需要就打开,默认不打开。 如需要兼容V4.5及以前版本的事务,可使用配置项兼容:<add key="TransationDefaultOpen" value="true"> </add> 6:XmlHelper更名为XHtmlAction 其它:增加的配置项: OpenDebugInfo:true/false,是否开启调试SQL语句记录,开发时打开,运行时可关闭。 RecordSqlLongQueryTime:N(单位毫秒),运行时设置,记录执行时间长的SQL语句,可以针对性分析与优化。 AppDebugFilterTime:N(单位毫秒),AppDebug可以输出页面SQL,通过此项可以过滤。 下面进行详细的解说 1:优化Access、SQLite数据库链接,以{0}代表根目录 示例: <connectionStrings>
<add name="Conn" connectionString="Data Source={0}App_Data\qblog.db;failifmissing=false" providerName="System.Data.SQLite" /> </connectionStrings> 2:MAction增加指定列的查询功能:SetSelectColumns 示例:[包含:查询,分页,绑定] protected void BindData()
{ int count; using (MAction action = new MAction(TableNames.Blog_Class)) { action.SetSelectColumns(selectColumns);//指定列 action.Select(Pager1.PageIndex, Pager1.PageSize, string.Empty, out count).Bind(gvClass); Pager1.Count = count; Pager1.BindName = "BindData"; } } 3:增加AppDebug类,可以全局输出执行过的SQL语句 示例:[在页面基类里,轻松处理一下即可] public class PageBase:System.Web.UI.Page
{ protected override void OnInit(EventArgs e) { AppDebug.Start();//开启记录页面的SQL base.OnInit(e); } protected override void OnPreRenderComplete(EventArgs e) { base.OnPreRenderComplete(e); Response.Write(AppDebug.Info);//输出记录页面的SQL AppDebug.Stop();//停止记录页面的SQL } } 页面效果:
其它几点的示例,写成了示例项目: 示例解决方案: 完整的示例页面: 最后: CYQ.Data 数据框架主页:http://www.cyqdata.cn/cyqdata CYQ.Data 数据框架下载(包括示例):http://www.cyqdata.cn/download/article-detail-426
![]() |
游客[注册][222.72.46.*]2012/9/20 6:32:07 | #10 | |
![]() | 希望在之后的版本中,做一个修改: SQLString.formatWhere 判断Where是否包含"like","between","in"时,在这3个逻辑判断符号的字符串前后加上空格。像我这样习惯用字符串当主键(非id int类主键)的会有帮助。如果传入一个包含3个符号的字符串的主键作为WHERE参数,就会出错。譬如刚insert一条记录,主键包含"in"就没法完成最后MDataTable填充的Select操作,造成insert报错。 回复: 感谢您的建议,后续版本会增加如此处理。 |
游客[注册][58.251.86.*]2011/12/25 1:16:23 | #9 | |
![]() | 请问是否可以同时支持多个数据库?比如多个版本的sqlserver,或者同时支持sqlserver 和oracle? 回复: 可以! |
游客[注册][1.193.70.*]2011/12/23 9:30:16 | #8 | |
![]() | 能否用在winform中? 回复: 可以。 |
swhhcf2011/10/11 21:45:48 | #6 | |
![]() | 谢谢解答,还有一个建议:是否能添加一个功能GetFromDataTabe:类似于GefFromJson 主要是基于从Excel导入时通常导入为DataTable |
游客[注册][218.107.16.*]2011/10/4 0:11:37 | #5 | |
![]() | 楼上说得找不到表。不是Bug。 是4.5新修改的地方,{0}代表根目录,可以看看修改日志,那里有例子! ~~~今天我也出了这个问题,搞了半天才发现原来是新版本修改了这个配置! |
swhhcf[218.75.89.*]2011/9/13 21:53:52 | #4 | |
![]() | 报告一个bug: 我用4.5的时候, string sql = "select username from smteacherinfo"; MProc proc = new MProc(sql); MDataTable dt=proc.ExeMDataTable(); 上述代码一切正常,改成4.5.5时,上述代码在运行到第3行时出错,说表smteacherinfo可能不存在 |
发表评论
论坛公告
帖子搜索
最新帖子
最新评论
- 请教博主。我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年就过了!!!!