VB2005里开发数据库的连接转为业务数据库连接的改写问题
我的问题是开发环境在本机有SQLSERVER2000,实例名TEST。
业务用SQLSERVER在服务器上,实例名TQDB。
两个服务器的数据库,用户,密码,跟权限都是一样的,TEST的数据库是直接用TQDB备份的文件还元的。
认证用的都是复合认证。
在这种情况下,我开发WINAPP,里面用到了两种方式,
一部分界面用数据源添加直接生成代码的方式,一部分用后台代码连接的方式。
这样开发出来的系统连接的都是开发环境的数据库TEST,
那我发布程序的时候是否所有的程序有连接数据库的代码都必须手动改变连接?
一般大家是怎么做的?
如果只用后台代码来做的话还比较简单,把连接数据库的操作独立出来写一个函数还比较简单,
但是用数据源连接的话发布的时候有什么办法可以快速转换,请高手们赐教。
问题点数:50、回复次数:8Top
1 楼yokenhou(风ノ影)回复于 2006-03-10 09:12:33 得分 0
顶一下。
大家都直接用运行中的业务数据库做开发吗?Top
2 楼tianxm(人生几何)回复于 2006-03-10 09:14:46 得分 0
帮你顶一下
建议尽量少用自动生成数据连接的这种方法,发布时不好发布.
我觉得是这样Top
3 楼daisi(腾飞天涯)回复于 2006-03-10 09:28:42 得分 3
用配置文件更好Top
4 楼yokenhou(风ノ影)回复于 2006-03-12 20:53:29 得分 0
没有更好的办法了吗?Top
5 楼CMIC(大象)回复于 2006-03-12 21:39:07 得分 40
Vs2005简单啊,webconfig有了<connectionStrings>配置节,分界面用数据源和后台代码可以使用同意配置节,界面用数据源直接选择,后台代码DbProviderFactory类从connectionStrings创建连接。Top
6 楼rices()回复于 2006-03-16 15:51:35 得分 7
修改你生成的应用程序的.config文件吧,我这里有一段代码可以实现这个功能,不过,你自己可以再修改一下.
Public Sub SetConfig()
Dim fileMap As New ExeConfigurationFileMap()
fileMap.ExeConfigFilename = Application.StartupPath & "\你生成的可执行文件名.exe.config"
Dim mConfig As System.Configuration.Configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None)
Dim conStrings As ConnectionStringsSection = mConfig.ConnectionStrings
Dim cs As ConnectionStringSettings
MsgBox(conStrings.ConnectionStrings.Count)
cs = conStrings.ConnectionStrings(1)
MsgBox(cs.Name)
cs.ConnectionString = "Data Source=Server;Initial Catalog=DB0001;Persist Security Info=True;User ID=sa;Password=1234567"
mConfig.Save()
'MsgBox(mConfig.FilePath)
'MsgBox(cs.ConnectionString)
End Sub
Top
7 楼rices()回复于 2006-03-16 16:02:41 得分 0
不过,最好是自己再写一个配置数据库连接的小程序,把这个代码放进去,先设置好数据库连接再运行你的程序,这样可以保证在你的程序运行时,这个配置文件已经是设置好的内容.Top
8 楼yokenhou(风ノ影)回复于 2006-04-21 21:26:16 得分 0
因为问题早已解决了,所以过了一个月才来看,发现正确答案了。
我用的就是类似于CMIC(大象)的方法,但是这个方法不够完善,
把连接写到配置文件里的话,程序发布到客户端,客户只要打个这个文件就可以得到用户名与密码,
然后用建个数据源用ACCESS就可以直接连接并操作数据库了。
rices() 的复杂了点,理论上应该也可以。
我用的方法给后来者做个参考,原理跟CMIC(大象)的一样,但就是在配置文件里只写服务器名,
然后写个类来自动生成连接字符串,因为SQL SERVER的用户是另外建的,分没有删除权限的用户,
跟有删除权限的用户两种,用户名跟密码有生成规律,所以这个类只要读取配置文件里的服务器名,
加上用户,就可以用算法生成数据库的连接字符串,然后界面上跟后台的服务器连接都调用这个类,
问题就解决了。Top




