在.NET 中怎么动态连接不同数据库

在.NET 中怎么动态连接不同数据库,第1张

应用工厂模式.把数据库联接作接口.再用点反射

给一小段代码参考

public DbDriver()

{

// 获取程序名称

assemblyName = ConfigurationManager.AppSettings["AssemblyName"]

// 获取默认构造器名称

constructor = ConfigurationManager.AppSettings["Constructor"]

}

public IDataTask DriveLWordTask()

{

// 建立 IDataTask 对象实例

return (IDataTask)Assembly.Load(assemblyName).CreateInstance(constructor, false)

}

assemblyName是某种具体数据库连接方式的程序集名.改变配置中的程序集名即得到不同的连接方式,不明白就先看下工厂模式

我觉得楼上解答的比较专业不了解,我后来在网上查了很多的资料终于解决了,我的方法如下

1.打开“任务管理器”中的“服务”;

2.找到“FLEXnet Licensing service”和ANSYS, Inc. License Manager的状态是否启动,我的显示的是“已停止”然后启动他们,就OK了,

3.为了避免每次都要手动启动第2步中的那两项,可以从任务管理器的右下角的“服务”按钮进入

“服务”,然后把他们更的“启动类型”改为“自动”

这是我的解决办法,希望对楼主有用。

最近在学习.NET的时,需要在客户端软件中保存用户的一些设置,比如是否在登录框中保存上次登录名等信息,就用到了.NET中的应用程序设置功能。如果使用用户范围的设置,程序会在磁盘上创建user.config用来存储修改后设置值,对 user.config所在的文件夹,我产生了一些兴趣,并做了一些研究。现举个例子来说明:

C:/Documents and Settings/Admin/Local Settings/Application Data/Microsoft/test.exe_Url_3ypvtlafqkef0gkp1kl5i2idjssaxajb/1.0.0.0/user.config

其中

“C:/Documents and Settings/Admin/Local Settings/Application Data”是LocalApplicationData特殊文件夹

“Microsoft”程序集的厂商名称

“Admin”是当前Windows用户名

“test.exe”是程序集友好名称

“1.0.0.0”是程序集版本

“user.config”是存储用户配置信息的文件,该文件举例如下:

“Url_3ypvtlafqkef0gkp1kl5i2idjssaxajb”该字符串是将程序集的厂商信息、版本信息、绝对路径进行哈希计算,得到的唯一值,可避免不同的程序生成相同的文件路径。

如果要想通过编程的方式对user.config文件做一些灵活的控制,就必须得到该文件的绝对路径,为了获取.NET生成user.config唯

一路径的方法,我使用Reflector反编译了System.Config程序集,终于得到了其中的方法,做了一些简化。现做一些介绍:

(1)ClientConfigPaths类,只有一个public方法GetUserConfigFilePath,此方法即可获取user.config的绝对路径

(2)StringUtil类,一个辅助类,用来做一些字符串 *** 作

(3)使用方法:

ClientConfigPaths ccp = new ClientConfigPaths()

textBox1.Text = ccp.GetUserConfigFilePath()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11795487.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存