我刚刚开始在vb.net中,我正在尝试更新由VB.net中的DataGridView复选框选择的访问数据库中的一行 .
这是系统的一部分:
这是我的代码:
Private Sub editIO_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles editIO.LinkClicked
If myConnection.State = ConnectionState.Open Then
myConnection.Close()
End If
myConnection.ConnectionString = connString
myConnection.Open()
If editIO.Text = "Enable Time In/Out Edit" Then
Try
Dim CheckedRows =
(
From Rows In AdminTabDisplay.Rows.Cast(Of DataGridViewRow)()
Where CBool(Rows.Cells("ck").Value) = True
).ToList
If CheckedRows.Count > 0 Then
Dim sb As New System.Text.StringBuilder
For Each row As DataGridViewRow In CheckedRows
sb.AppendLine(row.Cells("Last Name").Value.ToString)
Next
Dim cmd As OleDbCommand = New OleDbCommand("UPDATE [Roster1] SET [EditTime] = 'e' WHERE [Last Name] = '" & sb.ToString & "'", myConnection)
Dim dr As OleDbDataReader = cmd.ExecuteReader
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
viewAdmin()
editIO.Text = "Disable Time In/Out Edit"
End Sub
它可以检查选中的复选框,并在单击链接时更新整个数据库 .
但每次我在db命令后添加一个“WHERE”子句(即“WHERE [Last Name] ='”&sb.ToString&“'”),它不会更新所选行 .
另外,我想使用“Employee ID”列替换WHERE子句中使用的“Last Name”列
如果可能的话,请尽可能简单地解释一下 . 我还是VB.net的初学者 . 非常感谢你!非常感谢每一个帮助!
1 回答
别介意我的帖子 . 我用一个小细节解决了它 .
我使用了“员工ID”列而不是“姓氏”列,如上面的代码所示
它被转换为字符串(因为stringBuilder) . 但我用代码将它转换为Integer:
并将数据库命令更改为: