【问题标题】:Adding data to Access Database through Visual Basic Form通过 Visual Basic 窗体向 Access 数据库添加数据
【发布时间】:2013-09-25 01:03:03
【问题描述】:

我有一个论坛,我希望用户在其中输入个人资料名称,然后单击添加,然后它将他们在文本框中输入的内容添加到我表中的 ProfileName 字段中。当我单击“添加”按钮时,它会出现一个错误,指出在 system.data.dll 中发生System.Data.OleDb.OleDbException 类型的未处理异常。这是我的代码:

Private Sub RefreshData()
    Dim cnn As New OleDb.OleDbConnection
    If Not cnn.State = ConnectionState.Open Then
        cnn.Open()
    End If
    Dim da As New OleDb.OleDbDataAdapter("SELECT id AS [ID], " & _
        "ProfileName AS [Name] " & _
        " FROM Profile ORDER BY id", cnn)
    Dim dt As New DataTable
    da.Fill(dt)
    cnn.Close()
    Me.dgvData.DataSource = dt
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)                 Handles Button1.Click
    If (TextBox1.Text = "") Then
        MsgBox("Please enter a profile name.")
    Else
        Dim cnn As New OleDb.OleDbConnection("Provider=Microsof… Source=c:\Data\Database.mdb     ;Extended Properties=Paradox 5.x;")
        Dim cmd As New OleDb.OleDbCommand
        If Not cnn.State = ConnectionState.Open Then
            cnn.Open()
        End If

        cmd.Connection = cnn
        cmd.CommandText = "INSERT INTO Profile(ProfileName) " & _
            "VALUES (" & Me.TextBox1.Text & "')"
        cmd.ExecuteNonQuery()

        cnn.Close()
        Dim oForm As addsnake
        oForm = New addsnake
        oForm.Show()
        oForm = Nothing
        Me.Close()
    End If
End Sub

【问题讨论】:

  • 准确、完整的错误消息是什么?它会将您带到代码中的特定行吗?
  • 对话框中的所有内容都是“system.data.dll 中发生'System.Data.OleDb.OleDbException' 类型的未处理异常”,按钮为中断、继续、忽略(灰色出)和帮助(帮助只是提示我要光盘并尝试访问网页)它不会转到奇怪的代码行,因为它通常会这样做。
  • 这是错误的图片。 i42.tinypic.com/dnmywg.png
  • 那么当你按下 Break 时它会带你到哪一行?
  • 没有行。它出现了第二个错误。 i39.tinypic.com/aoatfq.png

标签: database visual-studio vba ms-access-2007


【解决方案1】:

如果没有更多信息,我建议:

你不需要给 id 一个 ID 的别名:

SELECT id AS [ID]

如果您愿意,您仍可以将其括在方括号中:

SELECT [id]

您在以下行中缺少撇号:

"VALUES (" & Me.TextBox1.Text & "')"

同时检查connectionstrings.com的连接字符串

【讨论】:

  • 按照您的建议做了一切,但我仍然收到错误消息:/
  • @JamesConroy 您是否尝试过:"VALUES ('" & Me.TextBox1.Text & "')" ... 文本框文本之前的单引号和之后的单引号?
  • 我刚刚试了一下,它解决了所有问题 :D 先生,真是个天才,非常感谢你 :DD 现在你介意看看我的其他问题吗?呵呵stackoverflow.com/questions/18904868/…
  • @JamesConroy 我看了另一个问题,但无能为力。对于这个答案,请点击答案左上角附近的复选标记“接受”它。你得到分数,安迪得到分数,其他人都会知道你的问题已经解决。谢谢。
猜你喜欢
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 2017-11-20
相关资源
最近更新 更多