是这样的,我做了一个小软件,有保存查询功能,所以就用了SQL server数据库,
连接数据库的字符串是直接在vs2015里“代码写的”,现在打包出来本机电脑可正常运行,但是问题来了:
1:此软件安装到其他电脑上因为没有SQLserver所以无法载入读取数据文件
2:就算安装有SQLserver的电脑,因为连接数据库的字符串不同导致连接失败
3:数据库分离出来的文件无法自动加载到安装在电脑上的数据库当中(这个是我尝试在另一台电脑上重新安装SQLSERVEER,把服务名,密码,用户设置成和我本机一样,就算能成功连接数据库,也得手动附加我的数据库文件)
{注意:所安装所有电脑都是杜绝联网了,所以不要给我说网络服务器什么的,多谢多谢,现在脑子也现装不下那么大知识量}
以上问题通过搜索找到了一些解决方案,但都不很理想
1:电脑上没SQLserver的重新给他安装一个,但是一个SQLserver好几个G,安装速度也比较慢,而且对于不懂的人来说,sqlserver的单独安装无疑是增加使用成本,更要命的是,就算人家折腾出来安装起,服务器名字、用户名、密码八成是不一样的,连接字符串又是VS代码里写好的,改都改不了
2:关于连接字符串,网上提出了XML配置文件,将连接字符串写入XML配置文件中,后期就算打包了,也可以通过配置文件进行修改连接字符串,这个方法我还在学习实验中(刚接触配置文件,别喷我....),暂时还没实现功能,但是我又预感这东西可以,但是问题就是不太智能,有没有方法自动读取数据库的服务名呢............
小软件可以考虑使用sql server localdb,运行时只有20~30MB,基本上你的数据库查询都不用改,只要连接字符串换换。
连接字符串可以放在app.config里,用installshield去配置。
关于installshield 修改xml
http://blog.csdn.net/wangfan1207/article/details/7877227
关于localdb
http://www.csdn.net/article/2012-03-29/313675
localdb和全功能的sql server的数据库格式兼容的,你直接导出你的sql server数据库(mdb)就能在localdb中用,不需要修改任何代码。
如果嫌localdb还不够小,可以用sqlite,很多客户端软件,比如qq,比如百度网盘,都用了sqlite。sqlite需要对你的代码做小小的修改。