在DevExpress Dashboard里接数据库,前面真正要先想清楚的,不是图表怎么绑字段,而是连接准备放在哪一层。官方文档写得很明确,Web Dashboard创建数据库数据源之前,要先注册数据连接;设计器里的数据源,本质上是建立在这些已注册连接之上的。所以如果一开始把连接字符串、环境区分和切换方式想乱了,后面测试库、预发库和正式库一换,Dashboard就很容易跟着乱。
一、DevExpress Dashboard怎么接数据库
接数据库这件事,比较稳的顺序是先注册连接,再建数据源,最后再配查询。这样做的好处是,连接管理和数据源设计能分开,后面要切环境时也不会一改就牵动整份Dashboard。
1、先把数据库连接注册到后端
官方说明里提到,Web Dashboard的数据连接可以通过配置文件注册,也可以通过自定义数据连接提供程序来提供。也就是说,常规项目里,先把连接字符串放到配置里最稳;如果你的连接来源更复杂,再考虑自定义provider。
2、再到设计器里新建数据源
进入Dashboard设计界面后,先打开【Data Sources】,点【Add】,再点【Create data source】。官方文档把这个入口写得很清楚,后面的向导里再去选数据源类型。
3、数据源类型选【Database】
在数据源向导的起始页里,数据库是一个独立类型。选中以后,才会进入数据库连接和查询的后续配置页面。所以前面连的是库,后面真正给图表供数的,还是这个Database数据源。
4、最后把查询定义补完整
连接能通,不等于数据源已经能用。数据库数据源建好以后,还要继续配置查询内容,把表、视图或查询结果真正整理成Dashboard能绑定的字段结构。只有走到这一步,后面的图表和卡片才能正常取数。
二、DevExpress Dashboard数据源切换怎么配置
数据源切换不要理解成每次重做一个新数据源。更稳的做法,是把切换点放在连接层,而不是放在图表层。因为官方体系本来就是“先注册连接,再创建数据源”,所以只要数据库结构一致,切库时优先换连接,不要先动Dashboard设计本体。
1、最常见的是按环境切换连接名
如果测试库、预发库和正式库结构一致,最省事的办法通常就是准备多套已注册连接,再让Dashboard指向不同连接。这样切换时只是换数据库入口,不用把数据源和图表全部重配一遍。
2、需要动态改服务器时用【ConfigureDataConnection】
官方文档说明,这个事件会在连接真正建立之前触发,作用就是自定义连接设置。也就是说,如果项目里要按租户、按用户或按运行环境动态切库,这个事件就是最直接的切换入口。
3、切换时优先改连接参数,不要先改图表
【ConfigureDataConnection】的核心就是改连接参数。官方说明里提到,要使用时可以从`e.ConnectionParameters`取到对应的连接参数对象,再按当前环境改服务器、数据库名或其他连接信息。这样做影响的是取数入口,不会把原有Dashboard布局带乱。
4、想限制用户随意切库时再收紧向导
如果项目不希望终端用户自己乱选连接,可以继续去定制数据源向导。官方文档说明,Dashboard Data Source Wizard本身就是可以被定制的,所以真正要管住切换范围时,不只是后台改连接,也要把前端可选入口一起收住。
三、接库和切换时先查哪里
很多接库问题看起来像是查询写错了,实际上更早就出在连接层。排查时,先查连接有没有注册,再查数据源是不是建在正确连接上,最后才看运行时切换逻辑,通常会快很多。
1、先查设计器里能不能看到目标连接
如果设计器里连目标库的连接名字都看不到,通常就不是Dashboard布局问题,而是后端连接还没注册好。因为官方已经说明,数据源向导能用的连接,前提就是先注册成功。
2、再查是换库还是换查询
如果只是环境不同但表结构一样,通常改连接就够了;如果库结构也变了,那就不只是切连接,查询定义也要跟着改。所以排查时要把“接库问题”和“取数字段问题”分开看。
3、最后查事件里有没有把连接改回旧值
有些项目明明配置文件已经换了,Dashboard还是连旧库,常见原因就是运行时在【ConfigureDataConnection】里又把参数覆盖回去了。这个点如果不单独查,很容易误以为配置文件没有生效。
总结
DevExpress Dashboard怎么接数据库,关键不是先做图表,而是先把数据连接注册好,再在【Data Sources】里创建【Database】类型数据源,最后把查询补完整。DevExpress Dashboard数据源切换怎么配置,更稳的思路也不是反复重建数据源,而是把切换放在连接层,用已注册连接或【ConfigureDataConnection】去控制数据库入口。这样做下来,开发时更顺,后面切测试库和正式库也更容易管。
