CYQ.Data 数据层框架

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

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

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

本文针对V5版本进行修改于(2016-07-04)

下面是使用步骤:

一:下载框架DLL[VS上在NuGet搜cyqdata,或者框架下载地址:下载中心]

下载框架后解压出: 

1:CYQ.Data.dll和CYQ.Data.Xml(方法注释提示)

2:CYQ.Data.ProjectTool.exe (枚举或实体生成器)

3:API 帮助文档一份

4:更新记录.txt

5:VS集成ProjectTool说明.txt

6:智能提示

如果使用的是SQLite、MySQL、Oracle、Sybase,需要下载相应的驱动DLL放到和CYQ.Data同一目录下。除了Sybase,自行在安装目录下可找到,其它三种,下载CYQ.Data的页面下方都有提供驱动下载。


二:手工下载的,项目添加引用

把 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=demo;uid=sa;pwd=123456" providerName="System.Data.SqlClient"/>
<connectionStrings>

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

<connectionStrings>

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

Access 2007或以上版本的链接为:Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}App_Data/demo.mdb


3:Oracle 数据库链接示例:

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

PS:Oracle支持三种方式:

1:原生的System.Data.OracleClient方式,用以上的链接方式。

2-3:ODP.NET方式,把Oracle.DataAccess.dll(需要安装客户端)或Oracle.ManagedDataAccess.dll(无需安装客户端)放在和CYQ.Data同一目录下即可:链接字符串示例如下:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SID = orcl)));User ID=sa;password=123456


4:SQLite 数据库链接示例:"{0}"代表根目录,System.Data.SQLite.dll放到CYQ.Data同一目录下即可(有区分32位和64位)

<connectionStrings>

<add name="Conn" connectionString="Data Source={0}App_Data/demo.db;failifmissing=false" providerName="System.Data.SQLite"/>

connectionStrings>

5:MySQL数据库链接示例:MySql.Data.dll放到CYQ.Data同一目录下即可

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

6:SyBase:把Sybase.AdoNet2.AseClient.dll放到CYQ.Data同一目录下即可

<connectionStrings>
<add name="Conn"connectionString="data source=127.0.0.1;port=5000;database=cyqdata;uid=sa;pwd=123456" providerName="Sybase.Data.AseClient"/>
connectionStrings>

6:Txt 文本数据库链接示例:

<connectionStrings>
<add name="Conn"connectionString="Txt Path={0}"/>
connectionStrings>

7:Xml 文本数据库链接示例:

<connectionStrings>
<add name="Conn"connectionString="Xml Path={0}"/>
connectionStrings>


五:快速上手

试一试1:WinForm、WPF或WebForm数据绑定

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

试一试2:数据填充WinForm、WPF或WebForm服务控件

 
using(MAction action = new MAction("表名"))
{
   if (action.Fill(888))//取主键=888的值

   {
     action.UI.SetToAll(this);//将当前查询的行数据自动绑定到所有控件中
   }
}




新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"
游客[注册][171.221.241.*]2017/7/4 11:12:49#14
请教博主。我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>
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"/>这一行配置可以删除。
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的问题,可能你的表结构带有系统关键字引起的或表已被独立打开占用的原因。
swhhcf2011/6/16 8:14:41#11
自己想的一个变通方法:先转换为2002格式的,再生成枚举文件
回复很聪明的说
swhhcf2011/6/15 9:51:58#10
07取消了用户组, 无法设置权限
swhhcf2011/6/13 16:37:13#9
*.accdb 无法用辅助工具生成枚举文件,不知下一版本能否改进?
回复可以生成的,只是设置权限的地方好像换了菜单,具体你在2007上找一下。
游客[注册][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这种还直接
回复前面三个母是可以自定义的,随意起的。
游客[注册][123.114.36.*]2011/4/8 4:26:31#7
的确是这样的
控件ID约定方式为“三个字母前缀”+字段名,前缀后面的那个还必须得是【字段名】
独行守卫2011/4/7 7:44:21#6
晕,刚才发留言之后,没数据,我还以为是我这的问题的,结果又多发了几遍,估计刚才的可能是缓存,老大帮忙把那多余的给删了吧!
回复已经清除,该问题已经处理了,以后应该不会出现回复后过一会再显示的问题。
独行守卫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:数据填充,里面的注释说明。
游客[注册][124.227.132.*]2011/4/6 19:28:04#4
不懂性能上会是怎么的?比起NH,AEF,Linq to SQL,XCode,MySoft.Data……
回复以上都是传统的ORM框架,独此框架走传统索引方式,性能绝优。
birchlee2011/3/20 21:15:44#3
开始研究
回复欢迎欢迎!
游客[注册][58.248.7.*]2011/2/28 0:18:44#2
请问,关键字“Conn”能否改的
回复如果你想改,可采集多数据库项目中的约定形式产生枚举名称就可以了。而约定的名称为“数据库名Conn"
kmycklose2011/2/18 0:23:16#1
如果是多个连接字符串怎么办呢,显然 关键字“Conn”定死了
回复辅助工具里有一个选项是“多数据库项目”,多数据库链接时,把它勾选后生成枚举即可。
其生成的表枚举约定名不再为TableNames开头,而是为:数据库名+约定开头;这样内部会取web.config中数据库名Conn的配置项。

发表评论

论坛公告

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


    在线帮助:欢迎联系

帖子搜索