【问题标题】:Establishing connection with local SQL Server database file与本地 SQL Server 数据库文件建立连接
【发布时间】:2012-03-21 11:41:51
【问题描述】:

我正在尝试与位于我的 D 驱动器上的 SQL Server 数据库文件 AdventureWorksDW2008R2_Data.mdf 建立连接。

我使用了连接字符串:

Server=.\SQLExpress;AttachDbFilename=D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW2008R2_Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;"

但是,我无法建立连接。

我的目标是从数据库中检索特定部门的员工人数(数据库中存在员工和部门表)。

谁能突出显示或建议允许我这样做的步骤?

【问题讨论】:

  • 不推荐使用用户实例功能 - 您应该尽量避免使用它。您不能将.mdf 文件附加到正在运行的 SQL Server 实例并使用它的逻辑数据库名称连接到它,而不是摆弄物理 .MDF 文件名吗??

标签: .net sql-server ado.net connection-string


【解决方案1】:

如果您使用的是 Sql Server Management Studio 中的示例数据库,那么我将无法工作。如果您正在工作,请关闭您的 Sql Management Studio..

【讨论】:

    【解决方案2】:

    将 mdf 文件添加到 d:\ 中的新文件夹并尝试以下操作: 数据源=.\SQLEXPRESS;AttachDbFileName=d:\data\Customers.mdf;集成安全=True;用户实例=True 可能是读取路径有问题。

    【讨论】:

      【解决方案3】:

      使用以下代码进行连接:

      public static void Main()
              {
                  try
                  {
                      string connectString =
                          "Server=IRIS-CSG-108\\SQLEXPRESS;" +
                          "Integrated Security=true";
                      SqlConnectionStringBuilder builder =
                          new SqlConnectionStringBuilder(connectString);
                      Console.WriteLine("Original: " + builder.ConnectionString);
                      Console.WriteLine("AttachDBFileName={0}", builder.AttachDBFilename);
      
                      builder.AttachDBFilename = @"E:\\TCMS.mdf";
                      Console.WriteLine("Modified: " + builder.ConnectionString);
      
                      using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
                      {
                          connection.Open();
                          // Now use the open connection.
                          Console.WriteLine("Database = " + connection.Database);
      
                          DataSet ds = new DataSet();
                          SqlDataAdapter da = new SqlDataAdapter("Select * from mytable", connection);
                          da.Fill(ds);
                      }
                      Console.WriteLine("Press any key to finish.");
                      Console.ReadLine();
      
      
                  }
                  catch (Exception ex)
                  {
                      Console.WriteLine(ex.Message);
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 2012-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多