与本地SQL Server数据库文件建立连接

时间:2012-03-21 11:41:51

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

我正在尝试与位于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;"

但是,我无法建立连接。

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

任何人都可以突出显示或建议允许我这样做的步骤吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

将mdf文件添加到d:\中的新文件夹中并尝试以下操作: 数据源=。\ SQLEXPRESS; AttachDbFileName = d:\ data \ Customers.mdf; Integrated Security = True; User Instance = True 可能是阅读路径有问题。

答案 2 :(得分:0)

使用以下代码进行连接:

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);
            }
        }