SQL异常存在具有相同名称的数据库,或者无法打开指定的文件

时间:2018-08-03 16:11:19

标签: c# sql-server database-connection

这是我遇到的问题:

  

发生异常
  epos \ SQLPlaygroundV1 \ SchoolDB.mdf失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者该文件位于UNC共享上。

创建表的SQL脚本:

CREATE TABLE [dbo].[Student]
(
    [Id] INT IDENTITY NOT NULL PRIMARY KEY, 
    [FirstName] NCHAR(16) NULL, 
    [LastName] NCHAR(16) NULL, 
    [Age] NCHAR(3) NULL, 
    [DateOfBirth] DATE NULL, 
    [Enrolled] BIT NULL
)

用于写入数据库的C#:

using (SqlConnection connection = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Admin-PC\\source\repos\\SQLPlaygroundV1\\SchoolDB.mdf;Integrated Security=True")) {
    using (SqlCommand command = new SqlCommand()) {
        command.Connection = connection;            
        command.CommandType = CommandType.Text;
        command.CommandText = "INSERT into Student (FirstName, LastName, Age, DateOfBirth, Enrolled)" +
                            " VALUES (@FirstName, @LastName, @Age, @DateOfBirth, @Enrolled)";
        command.Parameters.AddWithValue("@FirstName", "Bob");
        command.Parameters.AddWithValue("@LastName", "Bobson");
        command.Parameters.AddWithValue("@Age", "21");
        command.Parameters.AddWithValue("@DateOfBirth", "1990-01-01");
        command.Parameters.AddWithValue("@Enrolled", false);

        try {
            connection.Open();
            int recordsAffected = command.ExecuteNonQuery();
            Console.WriteLine(recordsAffected);
        } catch (Exception e) {
            Console.WriteLine("Exception occurred");
            Console.WriteLine(e.Message);
        } finally {
            connection.Close();
        }
        Console.ReadKey();
    }
}

我已确认不存在其他同名文件,并且已从服务器资源管理器属性窗口复制并粘贴了连接字符串。

我可以看到它的存在以及它在正确的路径中,等等,我不明白为什么它找不到/无法访问它。

1 个答案:

答案 0 :(得分:1)

问题在于,在repos之前只有一个反斜杠\之前,您需要添加另一个反斜杠,即连接查询,即数据库的路径。