启动应用程序时发生数据库错误

启动应用程序时发生数据库错误

问题描述:

我部署了C#应用程序并创建了安装程序。安装程序被成功创建,但试图启动它抛出了以下错误的应用程序时:在app.config中启动应用程序时发生数据库错误

An attempt to attach an auto-named database for file CampusPointe.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

连接字符串如下:

<connectionStrings> 
    <add name="App_Key_Management.Properties.Settings.VendorKeyConnectionString1" 
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=&quot;C:\Program Files\Vendor Key Management\VendorKey.mdf&quot;;Integrated Security=True;Connect Timeout=30;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

任何帮助,将不胜感激。

问候, 斯里兰卡

+1

CampusPointe.mdf?该文件在哪里出现? – deutschZuid

+0

主数据库文件存储在* .mdf文件中。您是否在Windows Server 2008上安装了SQL Server Express?当你完成安装时,你是否在网络共享文件夹中保存了一些文件? – MacGyver

斯里兰卡,

首先,您需要确保两件事: 1.您已经安装了SQL Server 2.您需要处理的创建或替换您创建的文件。我认为这是你的问题...如果.mdf文件存在,那么你需要更新现有文件或删除并替换它(USE [数据库] GO DROP TABLE ... GO CRATE TABLE ... GO)。您还需要考虑下面的第4步。 3.如果您正在访问位于数据库中的文件,则需要完整的名称。您还需要将数据库用户添加到ASP.NET Web.Config或App.config中的连接字符串(具体取决于应用程序)。我看起来像你已经开始这个... 4.确保您在连接字符串中使用的用户帐户在数据库端具有必要的权限。如果这是SQL SERVER中完整的数据库,那么用户帐户将需要更新,删除和创建权限。如果您正在替换或创建数据库,则用户需要CREATE DATABASE或DROP/CREATE权限。

我认为要最好地回答你的问题,我们需要更多关于应用程序体系结构的信息。我的猜测是,你的代码第一次创建数据库,然后当你第二次尝试运行它时,因为数据库已经存在。如果是这种情况,您还需要解决您的代码(使用IF语句或SWITCH CASE ...您的调用)以处理表(1)不存在并需要创建的情况; (2)存在并需要更新;和/或(3)存在并需要替换。正确的答案又取决于你的代码和你正在尝试做什么。