首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“一个或多个所需参数没有给定值”VB.Net GridView更新

“一个或多个所需参数没有给定值”VB.Net GridView更新
EN

Stack Overflow用户
提问于 2015-09-09 07:37:48
回答 2查看 256关注 0票数 1

我拥有一个Access DB,并通过VB.NET连接到它。

首先,我在GridView中显示了一个表记录,用户具有更新它的能力。用户更新后,他将按ButtonGridView获取更新的数据并更新Access数据库。

但是当我这样做的时候,我得到了错误No value given for one or more required parameters.,我在这里遗漏了什么?

代码:

代码语言:javascript
复制
 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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-10 05:34:05

应将该守则编辑如下:

代码语言:javascript
复制
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
        Me.Validate()
        Dim cmdBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(myAdapter)
        Dim changes As DataTable = myTable.GetChanges
        If changes IsNot Nothing Then
            myAdapter.Update(myTable)
        End If
        myTable.AcceptChanges()
End Sub
票数 0
EN

Stack Overflow用户

发布于 2015-09-09 08:29:11

使用文本"UPDATE T1 SET ID =?,Test =?WHERE ID = ?;“的sql命令需要3个参数,但在代码中的任何地方都没有设置它们。See this example并将参数分配到命令中,如下所示:

代码语言:javascript
复制
cmd.Parameters.AddWithValue("ID", txtID.Text);
cmd.Parameters.AddWithValue("Test", txtTest.Text);
... and so on
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32473594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档