数据临时保存到访问数据库。当我终止应用程序时,数据会自动从数据库中删除

时间:2013-01-05 09:43:35

标签: vb.net ms-access

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()

我的代码出错了什么?如何防止数据被自动删除?

1 个答案:

答案 0 :(得分:3)

您的项目文件中可能包含MDB(ACCDB)文件 如果检查与此项目文件关联的属性,则会找到一个名为

的属性

Copy to Output Directory设置为Copy Always

您的连接字符串也包含快捷方式

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

如果这种情况是正确的,那么

  • 启动应用程序并从中复制MDB文件 原始位置到BIN \ DEBUG目录。
  • 您可以毫无错误地插入数据。
  • 您停止调试会话以修复错误或其他问题
  • 你重启你的申请和你的新副本(但是空的) db将再次复制到输出目录中。

修复此问题,将属性设置为“从不复制”或将连接字符串更改为指向固定位置。

作为旁注:永远不要使用字符串连接来构建您的sql命令。这将是一个巨大的安全风险(Sql注入攻击)和众多解析问题的来源(日期格式化,带单引号的字符串,非整数的小数分隔符)。使用ALWAYS参数化查询。