【发布时间】:2016-09-02 12:51:57
【问题描述】:
我刚从 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 &“'”),它不会更新所选行。
另外,我想使用“员工 ID”列代替 WHERE 子句中使用的“姓氏”列
如果可能,请尽可能简单地解释它。我仍然是 VB.net 的初学者。非常感谢!非常感谢每一个帮助!
【问题讨论】:
标签: vb.net ms-access checkbox datagridview