【问题标题】:Issue with .mdf and installshield.mdf 和 installshield 的问题
【发布时间】:2015-09-22 05:20:10
【问题描述】:

我有一个使用 SQL Server 2014 localdb 连接到 .mdf 的程序。它需要安装到程序文件,所以它不能使用单击一次。话虽如此,当我点击一次构建它时。它完美地工作np。

但是当我通过 install shield 安装它时,我得到了这个异常

基础提供程序在打开时失败。 ---> System.Data.SqlClient.SqlException:尝试为文件 C:\Program Files (x86)\King Canine\King Canine Software\CanineDatabase.mdf 附加自动命名数据库失败。存在同名数据库,或指定文件无法打开,或位于 UNC 共享上。

我选择了 SQL Server 2014 LocalDB 作为重新分发的一部分,它安装在我正在测试它的计算机上。

以前有没有人遇到过这个问题或有任何想法?

【问题讨论】:

    标签: c# winforms installshield sql-server-2014 localdb


    【解决方案1】:

    根据您发布的错误消息,它可能意味着以下任何一种:

    存在同名数据库 这意味着您尝试附加的数据库已经存在于数据库中。

    指定的文件无法打开,或者它位于 UNC 共享中 您可以尝试检查您尝试附加的 .mdf 文件的文件夹是否具有足够的文件夹访问权限,您可以在文件夹的属性中的安全部分中看到这一点。

    【讨论】:

      【解决方案2】:
      1. 像这样更改连接字符串:

        string connectionStr = @"Data Source=(LocalDB)\MSSQLLocalDB; Database=CanineDatabase.mdf;Integrated Security = True";
        
      2. 对服务器中的数据库进行 T-SQL 查询:

        USE [master]
        GO
        
        IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'CanineDatabase.mdf')
          BEGIN  
          EXEC sp_attach_db @dbname = N'CanineDatabase.mdf',   
            @filename1 =   'C:\Program Files (x86)\King Canine\King Canine Software\CanineDatabase.mdf',   
            @filename2 =   'C:\Program Files (x86)\King Canine\King Canine Software\CanineDatabase_log.ldf';
          END 
          GO
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多