Vb.net 为什么更新Access数据库时我的记录变得相同?

Vb.net 为什么更新Access数据库时我的记录变得相同?,vb.net,Vb.net,为什么我的DataGridView显示的值与我在所有记录(行)中输入的值相同?例如,我在Access中有12条记录,但当我尝试更新该记录时,该记录会被保存和更改,但它会应用于所有12条记录,而不仅仅是我选择的记录 MemberID名字 0001谭宝云 0002谭宝云 0003谭宝云 0004谭宝云 0005谭宝云 0006谭宝云 0007谭宝云 0008谭宝云 0009谭宝云 0010谭宝云 0011谭宝云 0012谭宝云 这是我的代码: Private Sub bttnSave_Click(s

为什么我的DataGridView显示的值与我在所有记录(行)中输入的值相同?例如,我在Access中有12条记录,但当我尝试更新该记录时,该记录会被保存和更改,但它会应用于所有12条记录,而不仅仅是我选择的记录

MemberID名字
0001谭宝云
0002谭宝云
0003谭宝云
0004谭宝云
0005谭宝云
0006谭宝云
0007谭宝云
0008谭宝云
0009谭宝云
0010谭宝云
0011谭宝云
0012谭宝云

这是我的代码:

Private Sub bttnSave_Click(sender As Object, e As EventArgs) Handles bttnSave.Click
    i = MemberDataGridView.CurrentRow.Index

    searchmemberID.Text = MemberDataGridView.Item(0, i).Value
    txtMemberName.Text = MemberDataGridView.Item(1, i).Value
    MemberGender.Text = MemberDataGridView.Item(2, i).Value
    MEMBERIC.Text = MemberDataGridView.Item(3, i).Value
    MemberEmail.Text = MemberDataGridView.Item(4, i).Value
    MemberHandphone.Text = MemberDataGridView.Item(5, i).Value
    MemberAddress.Text = MemberDataGridView.Item(6, i).Value
    txtMemberName.Enabled = True
    MemberEmail.Enabled = True
    MemberHandphone.Enabled = True
    MemberAddress.Enabled = True
    Dim com As OleDbCommand
    com = New OleDbCommand("Update Member set [FirstName] =@sno", acsconn)
    com.Parameters.AddWithValue("@sno", txtMemberName.Text)
    com.ExecuteNonQuery()
    MsgBox("Record Saved")

因为您错过了SQL中的
where
子句。如果没有
where
子句,它将更新所有记录。你可以这样做:

  UPDATE table_name SET column1=value1 WHERE some_column=some_value; 

问题出在您的代码中,而不是数据中我知道,但我不知道如何解决它,您能帮我吗?您需要SQL中的WHERE子句-这是一个联机的see也谢谢^^^我会尝试,因为您错过了SQL中的WHERE子句。如果没有where子句,它将更新所有记录。示例:更新更新表\u name SET column1=value1,其中某些\u列=some\u值;com=New OleDbCommand(“更新成员集[FirstName]=@sno WHERE MemberID='”&searchmemberID.Text&“”,acsconn)请在这里发布您的查询@Snowishcom=New OleDbCommand(“更新成员集[FirstName]=@sno WHERE MemberID='”&searchmemberID.Text&“”,acsconn)是MemberID interger?您确定成员ID不是interger数据类型吗