周日偕就此文件数据库玩玩Code First

还记得,旧旧前发表了千篇一律篇稿子:文件数据库–.Net界未来的同样朵奇葩,引爆跨百条的评头品足,说明大家对文本数据库,还是情有所属的。

1、变量类型
int、double、string、char、bool、decimal
变量使用规则:先声明,再赋值,最后用

经长年累月底陷落,在文件的操作及,已经发矣把规模,因此,本文写出来与大伙分享一下。

2、命名规范:
Camel:第一只单词首配母小写,其他单词首字母大写,其余字母小写
Pascal:每个单词的首字母都大写,其余字母小写

 

5、常量
宣示常量的语法:
const 变量类型 变量称=值;
例:public const int Che_SHI = 10001;
常量一旦赋值,不可知叫还赋值

一:Code First 开始:

6、枚举(规范我们的付出)
语法:
[public] enum 枚举名
{
值1,
值2,
值3,
………..
}

 

[]蒙代表足简简单单
Public:访问修饰符,公开之公物的,修饰一个成员的看权限。
enum:关键字,声明枚举的关键字
枚举名:要顺应pascal命名规范
将枚举声明到命名空间的下边,类的外
面,表示这个命名空间下,所有的类都好采取是枚举。
枚举就是一个变量类型,像int、string这样
独是枚举声明、赋值、使用的道跟那些普通的变量类型不等同。
枚举是和谐写的变量类型

1:下载CYQ.Data V5,下载地址:http://www.cyqdata.com/download/article-detail-426

俺们好将一个枚举类型的变量和int类型和string类型互相转换。
枚举类型默认是同int类型相互配合的,所以可以经强制类型转换的语法互相转换。
当转换一个枚举中没的值的时候,不会见扔大,而是直接以数字显示出。

2:解压就一个dll,项目增长引用即可。

枚举同样也得以和string类型互相转换,如果以枚举类型转换成string类型,则直接调用ToString().
倘若拿字符串转换成枚举类型则用下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof(要换的枚举类型),”要变的字符串”);
调用Enum类里之Parse()方法来辅助我们拿一个字符串转换成为相应的枚举类型
万一换的字符串是数字,则就枚举中绝非,也会不见面弃大。
设换的字符串是文件,如果枚举中无,则会废弃来十分。

3:既然是Code First,那咱们虽直写实体类,示例如下:

7、结构
为一次性声明多只例外品类的变量(字段)
语法:
[public] struct 结构名
{
public string name;
成员//字段
}

    public class Users : CYQ.Data.Orm.OrmBase

先后中字段能存多个价值,变量只能存一个值。
字段起名规范,每个字段前面加一个下划线,来分别变量和字段。

    {

8、数组
一次性仓储多单相同类别的变量就用数组。
语法:
数组类型[] 数组名=new 数组类型[数组长度];
int []nums=new int [5];
累组的长度要固定了,就不可知再于更改了

        public Users()

数组拥有初值
int数组初值 0
string数组初值 null(不占用空间)
bool数组初值 false

        {

季栽写法
int[] nums = new int[5];
int[] nums = { 1, 2, 3, 4, 5 };(常用)
int[] nums = new int[5] { 1, 2, 3, 4, 5 };
int[] nums = new int[] { 1, 2, 3, 4, 5, };

            this.SetInit(this, “Users”, “Txt Path={0}”);

int范围 最大值 int.MaxValue
最小值 int.MinValue
可透过下标或者索引去看数组中的元素

        }

9、冒泡排序
以一个数组中的因素以自深至有些还是由小至的各个进行排列。
int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
Array.Sort(nums); //对数组进行升序排列
Array.Reverse(nums); //对数组开展倒序排列
无欲返回值,需要一个数组作为参数

        public int ID {get;set;}

10、方法/函数
函数就是以同一堆积代码进行录取的平等种植体制。
函数的语法:
[public]static 返回值类型 方法名([参数列表])
{
方法体:
}
public static int AddSum(int a,int b)
{
return a+b;
}

        public string UserName {get;set;}

回值类型:如果非需写返回值,写void。有返回值的用return返回
参数列表:完成这个主意所必须要供给此法的参数。有些计不欲写参数。

        public string Password {get;set;}

11、return的用法
1)在艺术中归要回去的值。
2)立即终止本次艺术。
3)一交汇一交汇的派系,return只回去上一致重叠。

    }

12、我们在Main()函数中,调用Test()函数。
咱管Main()函数称之为调用者,管Test()函数称之为被调用者。
设Test()想如果获取Main()的值:
1)传递参数。
2)使用静态字段来效仿全局变量。

 

使Main()想如果抱Test()的值:
1)返回值

征两只点:

13、不管是实参还是形参,都是在内存中开拓了空中的。

1,继承自OrmBase;

14、方法的意义自然要是单纯。
道吃不用出现提示用户输入。

2,构造函数里指定表名“Users”和数据库链接(Txt Path={0})。

15.out、ref、params
1)、out参数。
假定您在一个计中,返回多只同档次的价值的时刻,可以设想返一个数组。
然而,如果回去多单不同种类的价的时光,返回数组就老大了,那么是时,
咱们得考虑用out参数。
out参数在一个术中可回到多独不同品种的价值。
out参数要求于方式的其中必须为其赋值

 

2)、ref参数
可知用一个变量带入一个方式中展开变更,改变就后,再以转后底价带出办法。
ref参数要求在措施外必须也夫赋值,而艺术外可以无赋值。
ref不需创造一个新的变量来接返回值。

数据库链接验证({0}代表根目录):

ref是 有进有出,而out是 只生无上。
3)、params可转移参数
将实参列表中与可变换参数数组类型一致的元素还当数组的素去处理。
params可易参数必须是显得参列表中的末梢一个元素。

文件数据库(json存储方):Txt Path={0}

public static void Test(string name,params int [] score)

Xml数据库(xml存储方) :Xml Path={0}

16.措施的重载
概念:方法的重载指的即使是方法的名称相同,但是参数不同。
参数不同,分为两栽状况
1)、如果参数的个数相同,那么参数的项目就非可知同一。
2)、如果参数的花色相同,那么参数的个数就不可知同一。
***计的重载跟返回值没有涉及。

另外数据库,就是各国数据库的链接了还是布起了。

为此哪个就招哪个参
办法的重载就是得拓宽任何的参数

 

17、字符串的用法
字符串的length可以就此来比字的长度

OK,现在就是足以实操增删改查了,下面轻轻的言语一下。

18.方仿被改变屡组,不需回到值来收取就足以转。数组在方式吃凡是个不同。

 

19.Cosole之几乎种方法
1)改变字体颜色
Console.ForegroundColor = ConsoleColor.Yellow;
2)console.clear(); 清屏
3)console.readkey(true);不示输出的按键
4)输出时,保留小数点后少号
Double avg=10/3;
Console.WriteLine(“{0:0.00}”, avg);

仲:Code First 代码实例

 

1:插入与更新代码和图如下:

图片 1

 

代码说明:

左是增加和更新的代码,右侧是平简约的言传身教操作winform界面,这里发出少数要征。

1:为啥实体类设因此using包含操作?

于文本的操作,内部机制是在内存操作的,直到调用Disponse,才写及文本,因此,用using就是以了却时调用Disponse写及文件去之。

2:SetAutoParentControl是什么东东?

当控件名以约起名:为3字母+属性名,如txtUserName,txtPassword时,可以采用电动获取值法,

如此这般您拉N个控件上去,代码也不用转的。

传进this就是form本身,orm会遍历form下的控件进行取值。

 

2:对于其余Orm功能,暂不详写了,下载里发出api文档说明,这里只有列有接口:

 /// <summary>

    /// 数据操作公共接口

    /// </summary>

    /// <typeparam name=”T”></typeparam>

    internal interface ICommon:IDisposable

    {

        bool Insert();

        bool Insert(InsertOp option);

        bool Insert(bool autoSetValue);

        bool Insert(bool autoSetValue, InsertOp option);

        

        bool Update();

        bool Update(object where);

        bool Update(object where, bool autoSetValue);

        bool Delete();

        bool Delete(object where);

     

        bool Fill(object where);

        MDataTable Select();

        MDataTable Select(string where);

        MDataTable Select(int topN, object where);

        MDataTable Select(int pageIndex, int pageSize, string where, out
int count);

        int GetCount(string where);

        bool Exists(string where);

        #region UI接口

        void GetFrom(object control);

        void GetFrom(object control, object value);

        bool GetFromJson(string jsonOrFileName);

        void SetAutoParentControl(object parent, params object[]
otherParent);

        void SetAutoPrefix(string autoPrefix, params string[]
otherPrefix);

        void SetSelectColumns(params object[] columnNames);

        void SetTo(object control);

        void SetTo(object control, object value, bool isControlEnabled);

        void SetTo(object control, object value);

        void SetToAll(params object[] parentControls);

        #endregion

        string TableName { get; set; }

        string DebugInfo { get; }

    }

 

其三:基础说明解答

 

1:表从哪来、数据存哪?

系以初始化时,会根据表名和链接的地点,会依据性名称自动生成相应的表明结构于地方目录,并且以json或xml方式囤数据。

 

2:where支持sql?

支撑之,不过对此txt,xml,内置实现了极其基础的sql解析,可以满足>,>=,<,<=,=,is null,is not null,like,order by 等着力本询,不支持之生:函数,或group by等话。

 

3:实用场景

 

偶尔,数据并无要命,用access太纠心,用sqlite服务器安全设置以不容许,用mssql又以为杀牛不用牛刀,那txt,xml就该出手了。
情景同样:比如同简单的布局文件,你勾勒个实体类,就足以轻松的操作了,不用盖啥数据库表 。
此情此景二:Code First的目的,当你需要快速构建代码时,直接就用txt就达成了,然后工作代码就得起写了,不用等DBA建完库。
末可因需要,修改web.config的链接转到mssql,mysql,oracle等数据库,业务代码不变换的啊。
当然矣,this.SetInit(this, “Users”, “Conn”);应该这么写,对应webconfig的Conn配置起。
情景三:对于wp7开发,直接操作txt,还是蛮有理之。

 

 

4:多数据库兼容性

用过

CYQ.Data的意中人还掌握,支持多数据库是坏轻松过度的,现在而玩txt,轻松转换下链接就是到mssql等其它数据库了,所以打好一个,其它数据库同样是相当的。

谢谢兴趣的冤家,可以嬉戏同样游乐,过了Code First的瘾!!!

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图