【发布时间】:2015-09-10 13:34:05
【问题描述】:
我有一个Access DB 并通过VB.NET 连接到它。
首先,我在GridView 中显示一个表记录,用户可以对其进行更新。用户更新后,他会按Button 以从GridView 中获取更新的数据并更新Access 数据库。
但在执行此操作时,我收到错误 No value given for one or more required parameters. 我在这里缺少什么?
代码:
Dim sConnectionString As String _
= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DB.accdb;Persist Security Info=False;"
Dim myConnection As OleDbConnection
Dim myAdapter As OleDbDataAdapter
Dim myTable As DataTable
Private Sub form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
myConnection = New OleDbConnection(sConnectionString)
Dim myCommand As New OleDbCommand("SELECT ID,Test FROM T1", myConnection)
myConnection.Open()
myAdapter = New OleDbDataAdapter(myCommand)
myTable = New DataTable()
myAdapter.Fill(myTable)
setDataGridDataSource(myTable)
setLabelTxt("Row Count: " + myTable.Rows.Count.ToString(), RowCount)
DataGridView1.AllowUserToAddRows = True
DataGridView1.AllowUserToDeleteRows = True
DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
myConnection.Close()
End Sub
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Me.Validate()
Dim command As OleDbCommand = New OleDbCommand("UPDATE T1 SET ID = ? , Test = ? WHERE ID = ?;", myConnection)
myAdapter.UpdateCommand = command
myAdapter.Update(myTable)
myTable.AcceptChanges()
End Sub
【问题讨论】:
-
在 OleDbCommand 中为参数分配值的位置在哪里?就目前而言,您没有为 SQL 查询中的参数提供任何值。
-
@JaggenSWE 因为我使用的是 GridView,所以用户会在 GridView 中进行更改,我不知道如何将 GridView 中的参数放入命令中。我将在哪里获得代码中的更新字段?
-
看看这篇文章,它很好地解释了这个概念。它在 c# 中,但相同的逻辑适用于 VB.NET,并且逻辑的核心在不同语言中看起来或多或少相同。 codeproject.com/Articles/12846/…
标签: vb.net gridview oledbcommand