CodeFirst实战:用文本数据库存档软件配置

简介:

背景:


以前要写软件的时候,在编写用户配置这一块时,由于存档数据库不靠谱或大题小作,所以一般是存在文本中。
一开始是一个文件保存一个配置(图个File.Read与File.Write的操作简单)
由于软件经常升级,用户的配置也会不停的增加,又得兼容以前,又要新增加,之后的配置又用了分隔与换行来来保存多条配置。
重复多了之后,多少感觉到麻烦~~~



解决:


所以,对于DBImport,你看早期的版本,对于用户的数据库链接,也没保存配置,说白了就是懒啊。
后来有用户反应要增加,加之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;}
   }

说明:

表名: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);
                       }
                   }

如果链接已存在,就是更新,如果不存在,就是插入了。


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();
               }
           }


5:一切就绪,F5运行后,软件目录下就多了一个文件(文本数据存存档json或xml格式数据):


这里提一下,如果文本数据库链接不指定ts=0,在同一目录下会创建数据库结构:


示例就到这里结束了。


对于CodeFirst,是支持所有数据库,但是又有些许区别:

如果是对于sqlite,mssql,oracle,mysql等,由于数据是肯定是存到数据库的,所以CodeFirst编码运行后,肯定是会创建表结构到数据库中,才能存储数据。

意思就是,如果有数据库字段变化,可能需要到数据库里修改对应的字段;

而文本数据库,如果是增加或减少属性字段,则完全无事,如果是删除或修改字段名称,如果字段的数据不要,则也无事,如果原字段数据需要,自己打开事本,批量替换一下,也是相当方便。



总体来说,个人觉的CodeFirst的操作方式,还是文本数据库来的实在与方便~~~ 而其它数据库,虽然如果中间变更,还是要变更,那就又回到CodeLast了。。。








     本文转自cyq1162 51CTO博客,原文链接: http://blog.51cto.com/cyq1162/1256647
,如需转载请自行联系原作者




相关文章
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
108 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
58 9
|
27天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
41 4
|
1月前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
40 3
|
1月前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
191 1
|
1月前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
50 2
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
78 0
|
26天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
34 1
|
28天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
39 4