【问题标题】:vb.net data not inserting into ms access databasevb.net 数据未插入 ms access 数据库
【发布时间】:2013-12-14 01:31:15
【问题描述】:

这是我的表单快照

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

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, 表名是:测试, 表结构如下:

FieldName        DataType
ID               Number
Test             Text

代码运行成功,没有报错。 当我在数据库中看到时,其中没有找到记录

什么是错误?我找不到它。所以请帮助我。 提前致谢

【问题讨论】:

  • 哪个代码执行Test_Load?您是否进行了跟踪?
  • 为什么 Me.TextBox2.Text 周围有单引号,而 Me.TextBox1.Text 没有?此外,这种方法使您容易受到 SQL 注入的影响,您应该考虑将参数与存储过程一起使用,正如我在这里描述的那样:stackoverflow.com/questions/17172796/…

标签: vb.net ms-access insert


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    Dim cnn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\OfficeAutomationSystem.accdb"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2017-03-05
      • 2011-05-13
      • 2015-05-17
      相关资源
      最近更新 更多