2011-08-22 138 views
1

我部署了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

斯里蘭卡,

首先,您需要確保兩件事: 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)存在並需要替換。正確的答案又取決於你的代碼和你正在嘗試做什麼。

相關問題