2013-01-05 23 views
0

VB.NET數據在訪問數據庫時會臨時保存,當我終止應用程序時,數據會自動從數據庫中刪除。這裏是代碼: -數據臨時保存到訪問數據庫。當我終止應用程序時,數據將自動從數據庫中刪除

con1.Open() 
Dim da As New OleDbDataAdapter 
Dim cmd As New OleDb.OleDbCommand 
cmd.Connection = con1 
cmd.CommandText = "INSERT INTO Journal(UsedAccount,Effect,Purpose,EffectedAccount,Amount,Datex) VALUES('" & Me.ComboBox1.SelectedItem & "','" & effect & "','" & Me.TextBox1.Text & "','" & Me.ComboBox3.SelectedItem & "','" & Me.TextBox2.Text & "','" & Me.DateTimePicker1.Value & "')" 
cmd.ExecuteNonQuery() 
con1.Close() 

我的代碼做錯了什麼?我怎樣才能防止數據被自動刪除?

+0

仔細檢查您的訪問路徑。 – spajce

回答

3

可能您的MDB(ACCDB)文件包含在您的項目文件中。
如果您檢查與該項目有關的文件的屬性,你會發現一個名爲

Copy to Output Directory設置爲Copy Always

而且您的連接字符串包含快捷

Data Source = "|DataDirectory|\yourdb.mdb"

如果這種情況下是正確的,那麼

  • 啓動您的應用程序和MDB文件從 原來的位置複製到BIN \ DEBUG目錄。
  • 你在那裏插入你的數據沒有錯誤。
  • 您停止調試會話您重新啓動應用程序和 DB的全新副本(但空)在輸出目錄再次複製到修正錯誤或其它問題

修復其設置爲禁止複製或更改連接字符串以指向一個固定位置的屬性。

作爲一個方面說明:切勿使用字符串連接來構建您的sql命令。這將是一個巨大的安全風險(Sql注入攻擊)和衆多解析問題的來源(日期格式化,帶單引號的字符串,非整數數字的小數點分隔符)。使用ALWAYS參數化查詢。

相關問題