代码之家  ›  专栏  ›  技术社区  ›  user2239593

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

  •  2
  • user2239593  · 技术社区  · 11 年前

    这里是新手。

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

    连接字符串:

    SqlConnection sconn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\leemk_000\Documents\......Integrated Security=True;User Instance=True;");
    

    现在,如果我想把这个程序加载到另一台计算机上,我确信这个连接将不再工作,因为它仍在寻找 Users\Lee_000\

    我试图删除Lee_00,但我得到了以下内容 错误:

    试图为文件C:\Users\Documents附加一个自动命名的数据库。。。。。失败。存在具有相同名称的数据库,或者指定的文件无法打开,或者它位于UNC共享上。

    我能做些什么来使连接字符串在不同的计算机上工作。

    非常感谢

    3 回复  |  直到 11 年前
        1
  •  5
  •   marc_s    11 年前

    整体 用户实例和AttachDbFileName= 这种方法是有缺陷的——往好了说- 尤其地 当您想在多个客户端之间共享数据库时!

    在Visual Studio中运行应用程序时,它将在 .mdf 文件(来自 App_Data 目录到输出目录-通常 .\bin\debug -应用程序运行的位置)和 最有可能 你的 INSERT 效果很好,但你只是看着 错误的.mdf文件 最后

    如果您想坚持这种方法,请尝试在 myConnection.Close() 调用,然后检查 .mdf SQL Server Mgmt Studio Express的文件-我几乎可以肯定您的数据在那里。

    这个 实际解决方案 在我看来

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

    2. 安装SQL Server Management Studio Express

    3. 在中创建数据库 SSMS快递 ,给它一个逻辑名称(例如。 YourDatabase )

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

      Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
      

      其他的都是 确切地 和以前一样。。。

        2
  •  3
  •   Giorgio Minardi    11 年前

    如果它是本地数据库,你应该把它放在应用程序文件夹中,并随身携带,对吗? 将数据库放在应用程序的App_data文件夹中,并在连接字符串中使用该文件夹

       <add name="YourConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\yourfile.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    
        3
  •  1
  •   Deniz Traka    11 年前

    你需要使用数据库服务器,让你的用户通过你的连接字符串使用它,就像这样;

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

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