2011-09-10 36 views
1

我已經搜索了很多關於我的問題,但沒有解決方案,所以我在這裏發佈以獲得專家的建議。在我的Windows窗體應用程序中遇到Sqlcompact Databse問題

我正在製作一個Windows窗體應用程序,並使用Sql緊湊型數據庫。

我的問題:

當我使用的代碼(運行時間)被插入刪除,更新插入記錄在數據庫中,我可以看到他們更新,插入,在我的應用程序刪除,但是當我關閉應用程序,並再次啓動只有他們改變了幾次,一次一次:)。否則,我再次看到空白數據庫,或者如果我直接從解決方案資源管理器Visual Studio 2010中的數據庫中的值,他們永遠留在那裏。我正在使用簡單的更新,插入,刪除語句,但不知道爲什麼當我關閉應用程序時對數據庫所做的更改消失。

首先這對於所有:

Dim con As New SqlCeConnection 
    Dim command As New SqlCeCommand 

    connectionString = "Data Source=SqlCompactDatabase/RestaurantDatabase.sdf" 
    con.ConnectionString = connectionString 

    command.Connection = con 
    con.Open() 

我插入代碼:

  command.CommandText = "Insert into Inventory(itemcode,itemmin,itemmax,itemdesc) Values('" + itmcod + "','" + min + "','" + max + "','" + desc + "')" 
      command.ExecuteScalar() 

我的更新代碼:

command.CommandText = "update Inventory set itemMin='" + min + "',itemMax='" + max + "',instock='" + stock + "',itemDesc='" + desc + "' where itemcode='" + TextBox1.Text + "'" 
    command.ExecuteScalar() 

我刪除代碼:

 command.CommandText = "delete from inventory where itemcode='" + TextBox1.Text + "'" 
    command.ExecuteScalar() 

我打開緊密連接正常,沒有錯誤,也有一些是我無法弄清楚:)

預先感謝您

+0

'有些東西不相關'' - 爲什麼你使用CE數據庫作爲桌面應用程序(好奇知道) – Sudantha

+0

你可以說必須把它交給別人,所以另一個人只知道如何運行東西,如果我使用其他他必須更改連接字符串等.. –

+0

所有我種類的問題,每當我構建我的解決方案的新數據被擦除,否則它留下來,無論我運行多少次.. 但爲什麼這樣呢? 謝謝 –

回答

2

如果添加您SQLCE數據庫在Visual Studio項目,然後查看其屬性(在解決方案資源管理器中選擇該文件,然後查看「屬性」面板)。通常情況下,數據庫文件的「生成操作」設置爲「內容」,「複製到輸出」選項設置爲「始終複製」。這意味着,每次構建解決方案時,Visual Studio項目中的數據庫(最有可能是空的)都將被重新複製到build文件夾($ projectname $ \ bin \ Debug或\ Release)中,並用數據覆蓋現有數據庫在運行時添加。

要解決此問題,只需將複製到輸出設置爲「If newer」,只要您的設計數據庫文件發生更改,它就會覆蓋您的數據。

+0

謝謝。我發現,但不知道原因:),會記住這一點。 –

相關問題