2015-04-19 50 views
-2

當我在數據庫中添加數據時,我無法找到它,但它顯示給我,它被添加,但是當我重新運行應用程序時,運行該應用程序我找不到 這是我的SqlConnection:當我重新運行應用程序時,我無法在數據庫中找到數據

SqlConnection conn = new SqlConnection(@"Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|direct.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True"); 

,我使用應用程序配置,因爲我想DEPLOYE我的機器的客戶

<add name="DIRECTPERFERMANCE.Properties.Settings.directConnectionString" 
connectionString="Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\direct.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+0

試試這個http://stackoverflow.com/a/29558863/4513879 –

+1

告訴我們你的代碼實際寫入數據庫。 –

+0

您是否在您的項目文件之間包含了您的MDF文件?如果是,「複製到輸出目錄」屬性的值是什麼? – Steve

回答

0

整個用戶實例和AttachDbFileName =應用方法有缺陷 - 最好!當運行在Visual Studio中的應用程序,它會圍繞.mdf文件被複制(從App_Data目錄輸出目錄 - 通常.\bin\debug - 在你的應用程序運行)和最有可能,你INSERT的作品就好了 - 但你只是看着錯誤.mdf文件到底!

如果你想堅持使用這種方法,然後嘗試把一個斷點在myConnection.Close()呼叫 - 然後檢查.mdf文件與SQL Server管理Studio Express的 - 我幾乎可以肯定你的數據是存在的。

在我看來真正的解決方案

  1. 安裝SQL Server Express(和你已經做到這一點無論如何)

  2. 安裝SQL Server Management Studio中快速

  3. 中創建您的數據庫SSMS Express,給它一個邏輯名稱(例如Direct

  4. 使用其邏輯數據庫名稱連接到它(在服務器上創建時給出) - 並且不要亂用物理數據庫文件和用戶實例。在這種情況下,您的連接字符串將是這樣的:

    Data Source=.\\SQLEXPRESS;Database=Direct;Integrated Security=True 
    

    和其他一切是正是和以前一樣......

另見阿龍貝特朗的優秀博客文章Bad habits to kick: using AttachDbFileName更多背景信息。

+0

我嘗試添加數據,但它顯示我錯誤代碼實例。 Data Source =。\\ SQLEXPRESS; Database = Direct; Integrated Security = True – SIMO

相關問題