日期:2014-05-19  浏览次数:20596 次

问题多多啊,第一次试着生成C#软件
我现在做好了个小软件,在本机上调试时,链接到数据库用
SqlConnection   conn1.ConnectionString= "data   source=localhost;initial   catalog=TimeRecord;integrated   security=SSPI; "  
时,提示说SQL   SEVER不存在或拒绝访问,


SqlConnection   conn1.ConnectionString= "workstation   id=1F6XXXXXXXXXXX;packet   size=4096;integrated   security=SSPI;data   source=1f6xxxxxxxxxxx;persist   security   info=False;initial   catalog=TimeRecord ";
时,就可以成功运行啦,哈.

我现在想问的是:


我的SQL是和VS.NET装在不同的盘的,所以软件用到的数据表TimeRecord.mdf和TimeRecord_log.LDF在F:\sql\MSSQL\Data     也就是SQL的默认路径;
而我的软件项目(名为ProTimeRecord的一个文件夹)是在:H:\vs\myvs\xiangmu

我要生成并发布这个软件,SqlConnection   conn1.ConnectionString该要哪个语句啊?
用户的机子是不是也要装SQL后,才能安装这个软件来使用啊?

我看过一些例子,好像是要在那个项目文件夹里建一个存放数据表的文件夹,
比如,现在我在H:\vs\myvs\xiangmu\ProTimeRecord    
里建立一个子文件夹:mydata       然后把数据表TimeRecord.mdf和TimeRecord_log.LDF
放进去,不知这样行不行?

如果可以,那我的SqlConnection   conn1.ConnectionString   又该怎么写啊?

请好心的人给我个完整点的代码,好吗.


------解决方案--------------------
首先
你的程序数据库是基于sqlserver的 那么在用户方安装时当然要有sqlserver了 或者用户所在的网络中至少有一台sqlserver服务器

一般 我们都不是把sql连接串写在程序中,而是把它写在例如配置文件中,当程序启动时从配置文件中读取连接串。

对于数据库的文件问题 有很多的方法和策略 其实当部署程序时,部署数据库只需要在用户的数据库服务器中建立相应数据库即可,那么我们不必提前导出数据库,通过恢复数据库的方法,而是可以导出数据库脚本,通过执行脚本的方法来创建数据库。