是否有一个通用的连接字符串,用于不同的计算机使用我的vs2010开发的程序连接到本地数据库
本文关键字:连接 开发 vs2010 我的 程序 数据库 字符串 有一个 用于 是否 计算机 | 更新日期: 2023-09-27 18:07:07
这里是新手。
我的程序中有一个本地数据库。当我开发程序时,我使用了SQL
连接字符串:
SqlConnection sconn = new SqlConnection(@"Data Source=.'SQLEXPRESS;AttachDbFilename=C:'Users'leemk_000'Documents'......Integrated Security=True;User Instance=True;");
现在,如果我想把这个程序加载到另一台计算机上,我确信这个连接将不再工作,因为它仍然在寻找Users'Lee_000'
我曾尝试删除Lee_000,但我收到以下错误:
尝试为文件C:''Users''Documents附加一个自动命名的数据库。。。。。失败。存在具有相同名称的数据库,或者指定的文件无法打开,或者它位于UNC共享上。
如何使连接字符串在不同的计算机上工作。
非常感谢
整个用户实例和AttachDbFileName=方法是有缺陷的-充其量是,尤其是当您想在多个客户端之间共享数据库时!
在Visual Studio中运行应用程序时,它将围绕.mdf
文件进行复制(从App_Data
目录复制到应用程序运行的输出目录,通常为.'bin'debug
(,并且很可能,您的INSERT
工作得很好,但您最终只是看到了错误的.mdf文件!
如果您想坚持这种方法,请尝试在myConnection.Close()
调用上设置断点,然后使用SQL Server Mgmt Studio Express检查.mdf
文件,我几乎可以肯定您的数据已经存在。
在我看来,真正的解决方案是
-
安装SQL Server Express(而且您已经安装了(
-
安装SQL Server Management Studio Express
-
在SSMS Express中创建数据库,并为其指定一个逻辑名称(例如
YourDatabase
( -
使用其逻辑数据库名称(在服务器上创建时给定(连接到它,并且不要干扰物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:
Data Source=.''SQLEXPRESS;Database=YourDatabase;Integrated Security=True
其他一切都与以前完全一样。。。
如果它是本地数据库,您应该将它放在应用程序文件夹中,并将其与应用程序一起携带,对吗?将数据库放在应用程序的App_data文件夹中,并在连接字符串中使用
<add name="YourConnectionString" connectionString="Data Source=.'SQLEXPRESS;AttachDbFilename=|DataDirectory|'yourfile.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
您需要使用数据库服务器,并让您的用户通过这样的连接字符串使用它;
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
"myServerAddress"应该是服务器机器的ip地址。