如何编辑 Access 数据库中的记录 - Visual Basic

How to edit a record in an access database - visual basic

我想编辑访问数据库中的特定记录,但我总是出错

这是我要编辑的数据库: Access database

这些是用户创建并存储在访问数据库中的抽认卡。我想要的是用户能够编辑难度,因此它 more/less 经常出现

这是模块:

Module Module1
Public Function runSQL(ByVal query As String) As DataTable
    Dim connection As New OleDb.OleDbConnection("provider=microsoft.ACE.OLEDB.12.0;Data Source=flashcard login.accdb") 'Establishes connection to database
    Dim dt As New DataTable 'Stores database in table called dt
    Dim dataadapter As OleDb.OleDbDataAdapter

    connection.Open() 'Opens connection
    dataadapter = New OleDb.OleDbDataAdapter(query, connection)
    dt.Clear() 'Clears datatable
    dataadapter.Fill(dt) 'Fills datatable
    connection.Close()
    Return dt
End Function
End Module

这是用户可以按下以编辑数据库的按钮:

Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
    Dim sql As String
    sql = "UPDATE flashcards set difficulty = '" & TxtDifficulty.Text
    runSQL(sql)
End Sub

数据库中的难度列应该能够由用户通过他们在txtDifficulty.text

中输入的值进行编辑

很高兴听到我发现了撇号的问题。

I am going to need a where statement but the problem I have is that the user can create as much flashcards as they want so how would I write the where statement?

INSERT 语句没有 WHERE 子句,但 UPDATE 语句有并且通常由主键组成。

看看我如何 add a new record 忽略 mHasException 并专门使用参数。在这种情况下,使用了一个列表,但可以轻松地传递一个 DataRow 数组。

这里有一个 example 用于更新带有 DataRow 的记录。

要获取 ms-access 的其他代码示例,请参阅以下内容 repository

最后,在上面的存储库中,我没有涉及所有可能性,但应该有足够的东西让你继续。在查看代码时,我在添加参数和添加参数之间切换,而添加是推荐的方法,但两者都显示出差异。另见 Add vs AddWithValue.