chloe.mysql_WPF权限控制——【3】数据库、自定义弹窗、表单验证

你相信“物竞天择,适者生存”这样的学说吗?但是我们今天却在提倡“尊老爱幼,救死扶伤”,帮助并救护弱势群体;第二次世界大战期间,希特勒认为自己是优等民族,劣势民族应该被消灭,这样的思想带来的战争之痛,至今让人难以忘怀。我们的文化里面有这样一句话“天无绝人之路”,在西方世界是“神爱世人”。这个世代所创造的生产力大过先前的任何世代,但是这个世代的人过的仿佛比任何一个世代的人都忙碌;能否今天已经感到无路可走,或是说今天已经在经济上迫在眉睫的时候,心里不被忧虑或是烦乱抓住呢?当思想今天我们生活在这个这么恰到好处的自然界时,我相信,我们比麻雀贵重的多,深被造物主所爱。

这次博客的标题是数据库,自定义弹窗,表单验证;我们的目标是一个实用的权限控制框架,所以我觉得自己更像是一个组装产品的人,把其他人分享的成果拿来一点一点组装;好了,先看下截图:

接下来就们就针对这几个方面逐个来介绍下:

数据库:

今天我们在操作数据库的时候,已经很难接受手写sql语句的做法了,很多的时候都会考虑选用ORM框架,即可以自由的使用linq表达式,在特殊的场合又可以使用sql语句;原本打算使用dapper,但是在使用linq表达式的时候,发现网上可参考的资料不多,思索一番,决定使用先前用过的chloe。目前数据库使用的是sqlite数据库,当然大家要是需要改换其他的数据库,自行改换就是了,在项目中已经引入了针对SqlServer,MySql,Oracle的chloe所支持的组件,并且数据操作类也留下了其他数据库的扩展入口,看下截图与代码:

1 usingChloe;2 usingChloe.SQLite;3 usingSystem;4 usingSystem.Collections.Generic;5 usingSystem.Configuration;6 usingSystem.Linq;7 usingSystem.Text;8 usingSystem.Threading.Tasks;9

10 namespaceHQ.Plugin.SysManagerPlugin.Common11 {12 public classDbHelper13 {14

15 private static readonly string dbType = ConfigurationManager.AppSettings["DbType"].ToLower();16 private static readonly string sqliteconn = ConfigurationManager.ConnectionStrings["SQLiteConnectionString"].ConnectionString;17 private staticIDbContext sqliteDbContext;18 private staticIDbContext SqliteDbContext19 {20 get

21 {22 if (sqliteDbContext == null)23 {24 sqliteDbContext = new SQLiteContext(newSQLiteConnectionFactory(sqliteconn));25 }26 returnsqliteDbContext;27 }28 set

29 {30 sqliteDbContext =value;31 }32 }33 private staticIDbContext dbContext;34 public staticIDbContext DbContext35 {36 get

37 {38 switch(dbType)39 {40 case "sqlite":41 dbContext =SqliteDbContext;42 break;43 }44 returndbContext;45 }46 set

47 {48 dbContext =value;49 }50 }51

52 }53 }

数据操作类

自定义弹窗:

自定义弹窗是通过在Window窗体界面中加入ContentControl控件,然后在ContentControl控件中通过加载用户控件来实现的,效果是这样的:

贴下Window窗体的界面布局代码:

1

2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

6 xmlns:local="clr-namespace:HQ.Plugin.SysManagerPlugin.View.Dialog"

7 mc:Ignorable="d"

8 Title="CustomDialog"WindowStartupLocation="CenterScreen"ResizeMode="NoResize"BorderBrush="{DynamicResource IndexColor}"BorderThickness="1"WindowStyle="None"

9

10 >

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

View Code

这是使用弹出层的代码:

1 private voidAddEvent()2 {3 var userControl = newView.RoleDialog.Add();4 RoleAdd = newRoleAddViewModel();5 userControl.DataContext =RoleAdd;6 CustomDialog dialog = new CustomDialog(userControl, "添加", LoginUserHelper.MainWindow, userControl.Height, userControl.Width);7 dialog.ShowDialog(AddRoles);8 }

View Code

表单验证:

表单验证参考链接:表单验证

因为源码会分享出来,大家自由查看,所以这里就只是做下大致的介绍,对源码感兴趣的朋友,欢迎加入

QQ群:720369133

源码会在群里给大家分享,也恳请大家提出宝贵意见!

系列目录:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值