日期:2014-05-20  浏览次数:20707 次

WCF中登陆时选择操作数据库的问题
C/S中,在登陆时候选择要操作的服务器数据库,具体怎么样保存,以前用remoting的时候是在客户端建立静态字段保存服务器的操作数据库,这样就需要在调用任何方法的时候都需要传送一个数据库的参数过去。。


那为大侠给个思维,具体怎么样操作·

------解决方案--------------------
一样是读取配置文件,

如果是WCF,可以将所有与数据库相关的操作都放在服务端,再在客户端调用


------解决方案--------------------
个人认为在登录的时候选择服务器数据库这种做法比较怪异,客户端为何要去关心数据库的具体位置?按照WCF的传统思想,我觉得客户端的配置应该是决定连接哪些、以什么方式连接已有的WCF服务,而不是去考虑应该使用什么数据库。

当然,软件必须以需求为前提,因此如果需要在客户端保存数据库位置,那么你可以使用配置文件,用来保存一个数据库和连接字符串的列表,客户端启动的时候,会从列表中读取数据库名称然后显示在dropdown中以便用户选择,用户选择完成以后,程序就根据选定的连接字符串去创建Connection实例进而连接数据库。我不知道这些信息是否是你想要的,但这个过程跟WCF关系不大,这样的软件结构也只能算是C/DS(Client/Database Server)这样的结构。

这个数据库和连接字符串的列表,你可以使用本身的app.config文件去实现(通过自定义ConfigurationSection类),也可以自己另外写一个配置文件,然后在程序中物质化(反序列化)这个文件以读取内容。这个文件内容可以类似如下:
XML code

<dbservers>
  <dbserver name="本机数据库" value="provider=Microsoft.Jet.OleDb.4.0; Data Source=x.mdb" />
  <dbserver name="生产数据库" value="server=myserver; database=mydb; integrated security=SSPI" />
</dbservers>