none
如何根据选择的不同的帐套连接不同的数据库? RRS feed

  • 问题

  • 在系统登录时,可以选择不同的帐套,连接到不同的数据库。比如选择2016,则连接到 mis2016数据库,选择2017,则连接到 mis2017数据库。

    如何实现比较好?

    目前传递给DAL层的每一个函数都带了一个数据库名字,根据这个名字修改数据库连接字符串,再执行sql命令,非常麻烦,请教一下怎么写比较好?

    如果用微软企业库Entlib怎么写?

    2017年3月8日 15:04

全部回复

  • 可以做成配置项(静态类或动享变量),启动时

    Facade.CurrentDatabaseName="mis2016"; //mis2017

    在DAL中,直接读取Facade.CurrentDatabaseName当成数据库名字就可以了。这样就不必每个方法都加一个数据库名字。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年3月9日 4:24
  • 可以做成配置项(静态类或动享变量),启动时

    Facade.CurrentDatabaseName="mis2016"; //mis2017

    在DAL中,直接读取Facade.CurrentDatabaseName当成数据库名字就可以了。这样就不必每个方法都加一个数据库名字。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    有一点忘了提到,服务器使用 webservice等提供服务,所以DAL层是在服务器端的,这样处理应该是实现不了了。

    2017年3月10日 0:05
  • 可以考虑其它的方式,告知服务器层当前登入的帐套,比如消息队列,或是内存缓存(Redis等),

    服务器从这个缓存中取当前的数据库名字。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年3月10日 0:15
  • 多个用户访问,可能访问的是不同的帐套,所以考虑从服务器端固定记住访问哪个帐套,应该是不可行的。

    2017年3月16日 1:30