CYQ.Data 数据层框架

CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目。

CYQ.Data 数据框架 使用篇一 入门指南

快速使用帮助 | | | 发表日期 :2010-12-20 20:12:29#楼主  

框架下载地址:下载中心

下面是使用步骤:

一:下载框架DLL[最新发布版本]

进入下载网址,下载框架后解压出: CYQ.Data.dll和CYQ.Data.Xml(方法注释提示)

二:项目添加引用

把 CYQ.Data.dll添加到项目引用中(CYQ.Data.Xml 默认也会被复制引用到Bin目录中)

三:配置数据库链接 web.config[asp.net] 或 app.config[winform]

提示:winform下的app.config需要右键属性,将编绎选项改成内容。

1:MSSQL数据库链接示例

<connectionStrings>
<add name="Conn" connectionString="server=.;database=cyqdata.com;uid=sa;pwd=123456" providerName="System.Data.SqlClient"/>
<connectionStrings>

2:Access 2003数据库链接示例:"{0}"代表根目录

<appSettings><add key="AccessDbNameForWeb" value="App_Data/myspace.mdb" /></appSettings>

<connectionStrings>
<add name="Conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}" providerName="System.Data.OleDb"/>
connectionStrings>

3:Oracle 数据库链接示例:

<connectionStrings>
<add name="Conn" connectionString="Provider=MSDAORA;Data Source=cyqdata.com;User ID=sa;Password=123456;" providerName="System.Data.OracleClient"/>
connectionStrings>

4:SQLite 数据库链接示例:"{0}"代表根目录

<appSettings><add key="SQLiteDbNameForWeb" value="App_Data/myspace.mdb" /></appSettings>

<connectionStrings>
<add name="Conn" connectionString="Data Source={0}" providerName="System.Data.SQLite"/>
connectionStrings>

5:MySQL数据库链接示例:

<connectionStrings>
<add name="Conn" connectionString="Server=127.0.0.1;Port=1234;Database=mysql;uid=sa;pwd=12346" providerName="MySql.Data.MySqlClient"/>
connectionStrings>

 

四:运行枚举生成器

1:选择数据库类型,根据示例填写数据库链接,并测试链接成功。

2:生成分页存储过程:[只适用MSSQL、Oracle,其它数据库分页已内置,省略此步]

点击下面的“生成分页存储过程”。

3:点击生成异常日志表:[可选,用于记录异常的数据库记录]

4:生成枚举:

A:选择枚举文件保存路径,并点击保存。

B:如果项目中用到多个数据库,勾选“项目多个数据库”

C:切换到:表枚举生成菜单,点击“直接保存到文件”。

PS提示:数据库设计中,首字段名称需要为ID,且为主键,否则需要调整分页存储过程中的默认排序代码,如有疑惑,可联系作者。

五:快速上手

试一试1:数据绑定

using(MAction action=new MAction(TableNames.表名))
{
    action.Select().Bind(GridView1);//查询所有数据并绑定到GridView中
}
 

试一试2:数据填充

 
MAction action = new MAction(TableNames.表名);
if (action.Fill(888))//取id=888的值

{
     //对UI操作:SetTo与GetFrom
     action.SetTo(labUserName);
//
labUserName为Lable控件。
     //控件ID约定方式为“三个任意字母前缀”+字段名:如labUserName,UserName为表的字段名。 
     //对非UI操作:Set 与 Get
     string userName=action.Get<int>(Users.UserName);
     action.Close();
}



kmycklose2011-2-18 0:23:16#1
如果是多个连接字符串怎么办呢,显然 关键字“Conn”定死了
回复辅助工具里有一个选项是“多数据库项目”,多数据库链接时,把它勾选后生成枚举即可。
其生成的表枚举约定名不再为TableNames开头,而是为:数据库名+约定开头;这样内部会取web.config中数据库名Conn的配置项。
游客[注册][58.248.7.*]2011-2-28 0:18:44#2
请问,关键字“Conn”能否改的
回复如果你想改,可采集多数据库项目中的约定形式产生枚举名称就可以了。而约定的名称为“数据库名Conn"
birchlee2011-3-20 21:15:44#3
开始研究
回复欢迎欢迎!
游客[注册][124.227.132.*]2011-4-6 19:28:04#4
不懂性能上会是怎么的?比起NH,AEF,Linq to SQL,XCode,MySoft.Data……
回复以上都是传统的ORM框架,独此框架走传统索引方式,性能绝优。
独行守卫2011-4-7 7:40:04#5
问题:
1、action.SetTo(labUserName);
报错了
************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 CYQ.Data.MActionUI.SetTo(Control ct, Object value, Boolean isControlEnabled)
在 CYQ.Data.MActionUI.Set(Object ct, Object value, Boolean isControlEnabled)
在 CYQ.Data.MAction.SetTo(Object control)

用action.SetTo(label1, "value")可以
2、action.Fill(" ")
得到的是多个结果的话,用action.Get<int>(Users.UserName)得到的就只是一个结果

===========================================
action.SetTo();这个是直接给控件赋值的吧,这种写法还是头次看见,总感觉怪怪的!
回复看一下:试一试2:数据填充,里面的注释说明。
独行守卫2011-4-7 7:44:21#6
晕,刚才发留言之后,没数据,我还以为是我这的问题的,结果又多发了几遍,估计刚才的可能是缓存,老大帮忙把那多余的给删了吧!
回复已经清除,该问题已经处理了,以后应该不会出现回复后过一会再显示的问题。
游客[注册][123.114.36.*]2011-4-8 4:26:31#7
的确是这样的
控件ID约定方式为“三个字母前缀”+字段名,前缀后面的那个还必须得是【字段名】
游客[注册][219.131.182.*]2011-4-14 10:06:48#8
//对UI操作:SetTo与GetFrom
action.SetTo(labUserName);//labUserName为Lable控件。

//控件ID约定方式为“三个字母前缀”+字段名.如labUserName,UserName为表的字段名。
----------------------------------
如果这种约定规则可以自定义就最好,比如在配置文件里改lable-->对应前缀或简写,可以自定义每一个控件的前缀,如果不设就默认好了,因为都习惯将Lable的简写为lbl开头了,要不就直接写
lableUserName这种还直接
回复前面三个母是可以自定义的,随意起的。
swhhcf2011-6-13 16:37:13#9
*.accdb 无法用辅助工具生成枚举文件,不知下一版本能否改进?
回复可以生成的,只是设置权限的地方好像换了菜单,具体你在2007上找一下。
swhhcf2011-6-15 9:51:58#10
07取消了用户组, 无法设置权限
swhhcf2011-6-16 8:14:41#11
自己想的一个变通方法:先转换为2002格式的,再生成枚举文件
回复很聪明的说
jiangms[219.133.109.*]2011-7-11 14:18:20#12
有个问题:
用sql2005数据库代码代码没有问题,用access数据库时出现了报错:
请问是什么原因?access数据库是丛sql2005转化而来的

Error on DataOperator:IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。<br><hr>SQL:<br> select count(*) from shop_type where zone='class1' and parentid=0<hr>
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Exception: Error on DataOperator:IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。<br><hr>SQL:<br> select count(*) from shop_type where zone='class1' and parentid=0<hr>
回复这应该是access的问题,可能你的表结构带有系统关键字引起的或表已被独立打开占用的原因。
sedhuawu2011-12-24 21:11:10#13
秋天大哥,在Winform下使用SQLite,为什么每次在new MAction的时候都提示"数据库字段加载失败!请检查数据库链接及表名(weather)是否存在!"?
我的配置是参考您的指南写的:
<appSettings>
<add key="SQLiteDbNameForApp" value="Data/tq.db"/>
<add key="IsWriteLog" value="true"/>
<add key="LogPath" value="Log/"/>
</appSettings>
<connectionStrings>
<add name="Conn" connectionString="Data Source={0}" providerName="System.Data.SQLite"/>
</connectionStrings>
辛苦秋天大哥了!
回复connectionString="Data Source={0}" ,最新版本的数据库链接已经做了调整,直接使用:connectionString="Data Source={0}Data/tq.db",这么写即可,<add key="SQLiteDbNameForApp" value="Data/tq.db"/>这一行配置可以删除。

发表评论

论坛公告

    数据框架 CYQ.Data QQ群:
    1:6033006
    2:90594529
    3:129551677
    4:113108920

    使用本框架进行开发,入门简单,开发效率高,性能优越,更有详尽的API文档,有相关的使用帮助文章、示例文章、更甚有相关的视频教程及辅助工具。 关键还是免费与开源,实在是居家旅行、项目开发、学习研究的必备良品!!!!!!
    框架下载:下载中心

帖子搜索