回 帖 发 新 帖 刷新版面

主题:新手求助大虾:关于程序移植的问题!盼回~

我在用VB.net做一个课设,其中用到了MS SQLserver中自己建立的一个数据库. 程序是做完了.   在本机运行无误.  但是要把作好的.exe文件放到其他机器中运行就会产生:
"SQLserver 不存在: LOVERBEYOND" 类似的错误!
原因我知道: 因为我程序中所有的Connectionstring 都是 :workstation id=LOVERBEYOND;packet size=4096;integrated security=SSPI;data source=LOVERBEYOND;persist security info=False;initial catalog=711_project

LOVERBEYOND 是我的本机SQLSERVER服务器名.  
在别的机器上要运行我的程序就要连接sqlServer(我已经在对象机器中还原数据库)
问题是:我怎么把我程序中所有的Connectionstring 都该过来呢?(连数据适配器中的connection 都是如此!!)  
这是必须的么?有什么好的办法让我的程序在别的机器上也正常运行?  
我想这也算菜鸟程序员经常碰到的问题,大虾们帮忙指点一下了~~

回复列表 (共5个回复)

沙发

如果你在代码中所有的地方都直接使用了连接字符串的话,那就只能采用替换等手段手动修改了
一般的做法是,将连接串保存在一个配置文件中,建立一个数据库操作类,这个类负责读取这个连接串并实例化连接,而其他所有程序中需要数据库连接的地方都直接用这个连接就好了,需要改动的时候直接编辑配置文件,而不用更改代码或者重新编译。
当然,如果考虑到多种数据库连接方式的话,数据库操作类应该作为数据库操作接口的具体实现类存在。

板凳

可以这样么:  新建一个模块(model)然后把需要配置的connection写在里边!
然后文件中所有的连接都 = 模块中的connection  ?

3 楼

VB.NET从根本上讲和VB是不同的,VB大部分是面向过程的编程方法,而.NET中都变成面向对象的拉,module的概念在面向对象中并不是独立存在的,而是归于类来表现。
你在2楼的回话是解决方法之一,代码重用只是模式理论中最初级的应用,依然存在许多弊端,楼主可以暂时先用它解决问题,过后建议深入学习一下OOP和模式理论。

4 楼

恩~
我已经用这个笨办法解决了我当前的问题! 谢谢大虾指教~
你说的OOP什么的都没听过?! 汗。。。  回去继续学习

5 楼

ryowu:
还行
值的学习!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册