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

C# 使用vs2010开发的我的程序,不同的计算机是否有通用连接字符串来连接到本地数据库,c#,sql-server-express,C#,Sql Server Express,我是新手 我的程序中有一个本地数据库。当我开发程序时,我使用了SQL 连接字符串: SqlConnection sconn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\leemk_000\Documents\......Integrated Security=True;User Instance=True;"); 现在,如果我想将此程序加载到另一台计算机上,我确信此连接将不再工作,因为它仍在寻

我是新手

我的程序中有一个本地数据库。当我开发程序时,我使用了SQL

连接字符串:

SqlConnection sconn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\leemk_000\Documents\......Integrated Security=True;User Instance=True;");
现在,如果我想将此程序加载到另一台计算机上,我确信此连接将不再工作,因为它仍在寻找
用户\Lee\u 000\

我已尝试删除Lee_000,但出现以下错误:

SqlConnection sconn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\leemk_000\Documents\......Integrated Security=True;User Instance=True;");
试图为文件C:\Users\Documents…..附加自动命名数据库。。。。。失败。存在同名数据库,或无法打开指定的文件,或该文件位于UNC共享上

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

非常感谢

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

在Visual Studio中运行应用程序时,它将围绕
.mdf
文件进行复制(从
app\u 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
    
    其他一切都和以前一样


  • 您需要使用数据库服务器,并让您的用户通过您的连接字符串使用它,如下所示

    Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
    

    “myServerAddress”应该是您的服务器机器的ip地址。

    如果是本地数据库,您应该将其放在应用程序文件夹中并与应用程序一起携带,对吗? 将数据库放在应用程序的App_data文件夹中,并在连接字符串中使用该文件夹

       <add name="YourConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\yourfile.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    
    
    
    您打算在lan上与多个用户共享该数据库,还是仅仅是一个单用户应用程序?单用户应用程序,程序中有本地数据库我建议您调查Sql Server Express的数据库。看起来像是您正在搜索的内容。还将针对LocalDBhi查看这些特定的,谢谢,但我没有访问服务器的权限。非常感谢tho@user2239593:错了您已经安装了数据库服务器-它被称为SQL server Express…如果我没有弄错的话,普通用户没有对程序文件的写访问权限。数据库文件将在本地部署在应用程序的app_data文件夹中,无需访问Program Files文件夹。谢谢,花了一些时间,但现在已排序。