敏捷开发平台AgileEAS.NET中的本地数据库连接过程(以DrugShop为例)
来源:互联网 发布:游戏买号用什么软件 编辑:程序博客网 时间:2024/06/06 00:50
本文适用于刚接触AgileEAS.NET的开发,且需要进行数据库访问的开发人员及学生。
开发环境:VS2013
数据库:Microsoft SQL Server 2008R2
1 数据库登录,记住登录用户及密码,本例以本机的数据库作为服务器,登录及登录后如下图。
2 数据库登录完成后再来分析DrugShop工程里如何连接到数据库。
1> 从工程的执行入口开始,首先是DrugShop.Main项目下的APP.config配置数据库连接设置(如服务器地址、数据库名、服务器登录名及密码等参数设置)。运行源码的过程中出现数据库连接问题可参照已下代码检查各参数的配置;
<objects> <!--DbProvider:为数据库和DataAccessor提供接口;通过property属性来定义要连接的服务器地址、数据库名、登录名及密码等信息--> <object name="DbProvider" assembly="EAS.Data" type="EAS.Data.Access.SqlClientDbProvider" LifestyleType="Thread"> <property name="ConnectionString" type="string" value="Data Source=127.0.0.1;Initial Catalog=drugshop;Integrated Security=false;User ID=sa;Password=sa;Connect Timeout=30" /> </object> <!--数据访问器:通过DataAccessor(在BaseServiceObject继承类的定义里调用)访问数据库的相应数据--> <object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.DataAccessor" LifestyleType="Thread"> <property name="DbProvider" type="object" value="DbProvider"/> <property name="Language" type="object" value="TSqlLanguage"/> </object> <!--ORM访问器:ORM将数据库的字段与编程语言(如C#)之间建立对应关系,可以很好地在编程语言环境下对数据库进行读取(在DrugShop.Entities中Generate文件夹下)--> <object name="OrmAccessor" assembly="EAS.Data" type="EAS.Data.ORM.OrmAccessor" LifestyleType="Thread"> <property name="DataAccessor" type="object" value="DataAccessor"/> <!--<property name="DataNotifier" type="object" value="DataNotifier"/>--> </object> <!--数据通知程序--> <!--<object name="DataNotifier" assembly="EAS.Data" type="EAS.Data.ORM.SocketBusDataNotifier" LifestyleType="Singleton"> <property name="MessageBus" type="object" value="MessageBus"/> </object>--> <!--消息总线--> <!--<object name="MessageBus" assembly="EAS.MicroKernel" type="EAS.Sockets.Bus.SocketBus" LifestyleType="Singleton"> <property name="Url" type="string" value="socket.tcp://127.0.0.1:6606/"/> </object>--> <!--查询语言--> <object name="TSqlLanguage" assembly="EAS.Data" type="EAS.Data.Linq.TSqlLanguage" LifestyleType="Thread"/>
2> 在C#工程里对数据库里需要用到的表里的字段进行映射(ORM技术),在DrugShop.Entities中Generate文件夹下个.cs文件里完成。在Generate文件夹下的每个文件里都会指定某个Table及Table下的每个字段,以便程序调用。3> 在DrugShop.BLL.Contracts项目里将定义对数据库访问的各接口函数,在DrugShop.BLL.Host项目下完成上述各接口的具体实现方法。实现方法里对数据库里采集的数据的处理主要采用Linq to SQL语言,与标准的SQL语言有所不同,具体不同请参考相关博客。在DrugShop.BLL.Host项目下的每个类都继承自BaseServiceObject,此类是为了提供一个访问数据库的实例。以方法GetDrugChangePriceList为例说明参考注释。
public IList<CPrice> GetDrugChangePriceList(string backCause, string keyWord, DateTime startTime, DateTime endTime) { //根据APP.config的设置读取目标数据库的表CPrice里的全部数据,并赋值给query DataEntityQuery<CPrice> query = DataEntityQuery<CPrice>.Create(); //通过LINQ To SQL语言进行数据的删选,将按条件删选后的数据表返回到IList var p = (from item in query where (backCause.Trim().Length == 0 || item.Cause.Contains(backCause.Trim())) && (keyWord==string.Empty || item.InputCode1.StartsWith(keyWord)) && item.EventTime>=startTime && item.EventTime<=endTime orderby item.EventTime descending select item); return p.ToList(); }
4> 在DrugShop.WinUI里就可以调用接口来读取数据库的数据,具体调用方法如下例:
this.backList= ServiceContainer.GetService<IDrugBackService>().GetDrugCustomBackList(this.tbCustomName.Text.Trim(),this.tbSeach.Text, this.dtpStart.Value, this.dtpEnd.Value);
药店管理系统运行界面如下图。
至此,从数据库读取数据到可被操作的List变量的连接过程就结束了。欢迎各位指错。
阅读全文
0 0
- 敏捷开发平台AgileEAS.NET中的本地数据库连接过程(以DrugShop为例)
- AgileEAS.NET敏捷开发平台案例-药店系统-项目综述
- 开源:AgileEAS.NET SOA 中间件/敏捷软件开发平台
- AgileEAS.NET SOA 中间件/敏捷软件开发平台
- AgileEAS.NET平台开发实例-开发环境配置
- AgileEAS.NET平台开发实例-药店系统-报表开发(上)
- AgileEAS.NET平台开发实例-药店系统-报表开发(下)
- AgileEAS.NET平台开发案例-药店系统-项目说明
- AgileEAS.NET平台开发案例-药店系统-需求分析
- AgileEAS.NET平台开发实例-药店系统-数据库还原
- AgileEAS.NET平台开发实例-药店系统-数据库设计
- AgileEAS.NET平台开发实例-药店系统-系统架构设计
- AgileEAS.NET平台开发实例-药店系统-数据库建模
- AgileEAS.NET平台开发实例-药店系统-DAL层解析
- AgileEAS.NET平台开发实例-药店系统-BLL层分析
- AgileEAS.NET平台开发实例-药店系统-UI层分析
- 基于AgileEAS.NET企业应用开发平台的分布式解决方案
- AgileEAS.NET SOA中间件平台简易入门
- A
- Angular2:Cold vs Hot Observables
- 欢迎使用CSDN-markdown编辑器
- 动画
- 【JavaSE学习笔记】多线程01_Thread,Runnable,synchronize同步机制
- 敏捷开发平台AgileEAS.NET中的本地数据库连接过程(以DrugShop为例)
- Java内存区域总结
- Linux(一):运行级别查询及切换
- wxPython 实现文件拖拽功能
- 修改spark日志配置
- 数学_几何模板
- codeforces 460D Little Victor and Set(构造)
- Window 与 Object的奇妙联系
- gerrit、gitlab以及jenkins整合(未完待续)