启动应用程序时出现数据库错误

时间:2011-08-22 04:28:29

标签: c# sql

我部署了C#应用程序并创建了安装程序。安装程序已成功创建,但在尝试启动应用程序时,会抛出以下错误:

  

尝试为文件CampusPointe.mdf附加自动命名的数据库   失败。存在同名的数据库,或指定的文件不能存在   打开,或者它位于UNC分享。

app.config中的

连接字符串如下:

<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 个答案:

答案 0 :(得分:1)

斯里兰卡,

首先,您需要确保以下几点: 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)存在并需要更换。正确答案取决于您的代码以及您要做的事情。