2013-11-28 212 views
0

这是我的形式快照vb.net数据未插入MS Access数据库

enter image description here

这是我的代码将数据插入到数据库

Imports System.Data.OleDb 

Public Class Test 
    Dim cnn As New OleDb.OleDbConnection 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim cmd As New OleDb.OleDbCommand 
     If Not cnn.State = ConnectionState.Open Then 
      cnn.Open() 
     End If 
     cmd.Connection = cnn 
     cmd.CommandText = "INSERT INTO Test(ID, Test) " & _ 
         " VALUES(" & Me.TextBox1.Text & ",'" & Me.TextBox2.Text & "')" 
     cmd.ExecuteNonQuery() 
     cnn.Close() 
    End Sub 

    Private Sub Test_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     cnn = New OleDb.OleDbConnection 
     cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OfficeAutomationSystem.accdb; Persist Security Info=False" 
    End Sub 
End Class 

我的数据库名称:OfficeAutomationSystem .accdb, 表名称:Test, 表结构如下:

FieldName  DataType 
ID    Number 
Test    Text 

代码运行成功,并且没有错误。 当我在数据库中看到时,没有发现该记录

什么是错误?我无法找到它。所以,请帮助我。 在此先感谢

+0

哪些代码执行Test_Load?你有踪迹吗? – NoChance

+0

为什么你有单引号Me.TextBox2.Text,而不是Me.TextBox1.Text?此外,这种方法会让您容易受到SQL注入的影响,您应该查看使用存储过程的参数,如我在此处所述:http://stackoverflow.com/questions/17172796/ms-access-2003-triggers-query-event-and- Excel中导入/ 17175640#17175640 – majjam

回答

3

有时Data Source=|DataDirectory|\...调试时出现问题。请记住,当您调试代码时,您的项目文件夹中将有另一个\bin\debug数据库。可能你正在更新这个数据库中的记录而不是原来的记录。

尝试设置绝对路径并检查记录是否正在更新。

1
Dim cnn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\OfficeAutomationSystem.accdb"