是否有一个通用的连接字符串,用于不同的计算机使用我的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共享上。

如何使连接字符串在不同的计算机上工作。

非常感谢

是否有一个通用的连接字符串,用于不同的计算机使用我的vs2010开发的程序连接到本地数据库

整个用户实例和AttachDbFileName=方法是有缺陷的-充其量是,尤其是当您想在多个客户端之间共享数据库时

在Visual Studio中运行应用程序时,它将围绕.mdf文件进行复制(从App_Data目录复制到应用程序运行的输出目录,通常为.'bin'debug(,并且很可能,您的INSERT工作得很好,但您最终只是看到了错误的.mdf文件

如果您想坚持这种方法,请尝试在myConnection.Close()调用上设置断点,然后使用SQL Server Mgmt Studio Express检查.mdf文件,我几乎可以肯定您的数据已经存在。

在我看来,真正的解决方案是

  1. 安装SQL Server Express(而且您已经安装了(

  2. 安装SQL Server Management Studio Express

  3. SSMS Express中创建数据库,并为其指定一个逻辑名称(例如YourDatabase(

  4. 使用其逻辑数据库名称(在服务器上创建时给定(连接到它,并且不要干扰物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    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地址。