CodeFirst实战:用文本数据库存档软件配置
来源:互联网 发布:域名申请的方法与步骤 编辑:程序博客网 时间:2024/05/17 03:00
背景:
以前要写软件的时候,在编写用户配置这一块时,由于存档数据库不靠谱或大题小作,所以一般是存在文本中。
一开始是一个文件保存一个配置(图个File.Read与File.Write的操作简单)
由于软件经常升级,用户的配置也会不停的增加,又得兼容以前,又要新增加,之后的配置又用了分隔与换行来来保存多条配置。
重复多了之后,多少感觉到麻烦~~~
一开始是一个文件保存一个配置(图个File.Read与File.Write的操作简单)
由于软件经常升级,用户的配置也会不停的增加,又得兼容以前,又要新增加,之后的配置又用了分隔与换行来来保存多条配置。
重复多了之后,多少感觉到麻烦~~~
解决:
所以,对于DBImport,你看早期的版本,对于用户的数据库链接,也没保存配置,说白了就是懒啊。
后来有用户反应要增加,加之CYQ.Data的文本数据库功能相对越来越完善,以及使用上也方便了,所以就增加上去了。
后来有用户反应要增加,加之CYQ.Data的文本数据库功能相对越来越完善,以及使用上也方便了,所以就增加上去了。
所以今天就以这个为实例,讲解一下是怎么方便法:
对于DBImport来说,有两个输入框,为了方便存档及下次启动,需要保存下并于下次启动时还原:
实战如下:
1:用入CYQ.Data.dll V5版本的。
2:CodeFirst编写个实体:
class Config : CYQ.Data.Orm.OrmBase
{
public Config()
{
base.SetInit(this, "Config", "txt path={0};ts=0");
}
private int ID{get;set;}
private string Key{get;set;}
public string Value{get;set;}
}
{
public Config()
{
base.SetInit(this, "Config", "txt path={0};ts=0");
}
private int ID{get;set;}
private string Key{get;set;}
public string Value{get;set;}
}
说明:
表名:Config;
{0}:代码根目录,即软件运行目录;
ts=0:新增的识别参数,不创建Config.ts的表结构文件。
3:接下来就是按钮点击事件成功后,把数据为链接保存:
//保存链接字符串。
using (Config config = new Config())
{
if (config.Fill("key='ConnFrom'"))
{
config.Value = connFrom;
config.Update();
}
else
{
config.Key = "ConnFrom";
config.Value = connFrom;
config.Insert(InsertOp.None);
}
}
using (Config config = new Config())
{
if (config.Fill("key='ConnFrom'"))
{
config.Value = connFrom;
config.Update();
}
else
{
config.Key = "ConnFrom";
config.Value = connFrom;
config.Insert(InsertOp.None);
}
}
如果链接已存在,就是更新,如果不存在,就是插入了。
4:软件初运行的时候检测数据是否存在,并设置初始值还原:
using (Config config = new Config())
{
if (config.Fill("Key='ConnFrom'"))
{
txtConnFrom.Text = config.Value.ToString();
}
if (config.Fill("Key='ConnTo'"))
{
txtConnTo.Text = config.Value.ToString();
}
}
{
if (config.Fill("Key='ConnFrom'"))
{
txtConnFrom.Text = config.Value.ToString();
}
if (config.Fill("Key='ConnTo'"))
{
txtConnTo.Text = config.Value.ToString();
}
}
5:一切就绪,F5运行后,软件目录下就多了一个文件(文本数据存存档json或xml格式数据):
这里提一下,如果文本数据库链接不指定ts=0,在同一目录下会创建数据库结构:
示例就到这里结束了。
对于CodeFirst,是支持所有数据库,但是又有些许区别:
如果是对于sqlite,mssql,oracle,mysql等,由于数据是肯定是存到数据库的,所以CodeFirst编码运行后,肯定是会创建表结构到数据库中,才能存储数据。
意思就是,如果有数据库字段变化,可能需要到数据库里修改对应的字段;
而文本数据库,如果是增加或减少属性字段,则完全无事,如果是删除或修改字段名称,如果字段的数据不要,则也无事,如果原字段数据需要,自己打开事本,批量替换一下,也是相当方便。
总体来说,个人觉的CodeFirst的操作方式,还是文本数据库来的实在与方便~~~ 而其它数据库,虽然如果中间变更,还是要变更,那就又回到CodeLast了。。。
0 0
- CodeFirst实战:用文本数据库存档软件配置
- 【存档】一些好用软件的存档[2017.12.03更新]
- EF codefirst 数据库迁移
- EF CodeFirst 数据库迁移
- .NetCore1.1--CodeFirst创建数据库
- 软件下载 地址存档
- CodeFirst
- CodeFirst
- 主从数据库配置实战
- 用专用软件解决网络布线资料存档难题
- 数据库系统基础知识--存档
- 存档:数据库相关阅读
- MPICH 完整配置存档
- EF CodeFirst 数据库初始化和迁移
- EF框架之CodeFirst创建数据库
- C# 之 EF CodeFirst创建MySQL数据库
- MySQL主从数据库配置实战
- ORCL数据库改为存档模式
- CYQ.Data 快速开发之UI(赋值、取值、绑定)原理
- 数组中重复的数字
- 秋色园网站转移过程记录篇
- 框架设计之ADO.NET Command的ExecuteScalar误用情景及底层解说
- 电子商务网站SQL注入项目实战一例
- CodeFirst实战:用文本数据库存档软件配置
- CYQ.Data 批量添加数据性能测试(每秒千、万)
- 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- CYQ.Data V4系列全面开源(2013-08-04)
- CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)
- linux系统入门遇到的问题
- .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)