Vb.net 从Listview检查的项目更新数据库
大家好。 我正在尝试仅从我的listview中的选中/选定项更新我的数据库,因此我的代码无效,因为它更新了所有记录。我什么都试过了。。。求求你,任何帮助都会很棒Vb.net 从Listview检查的项目更新数据库,vb.net,listview,oledbconnection,Vb.net,Listview,Oledbconnection,大家好。 我正在尝试仅从我的listview中的选中/选定项更新我的数据库,因此我的代码无效,因为它更新了所有记录。我什么都试过了。。。求求你,任何帮助都会很棒 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\bnp\Desktop\Servicios1.mdb"
Dim myconnection As New OleDbConnection(constring)
Dim sql As String = ""
Dim estado As String = "Saved"
myconnection.Open()
If ListView1.CheckedItems.Count > 0 Then
Dim x = ListView1.CheckedItems.ToString
sql = "UPDATE Pedidos SET Ped_est = @estado where x = @x"
Dim acscmd = New OleDb.OleDbCommand(sql, myconnection)
acscmd.Parameters.AddWithValue("@estado", estado)
acscmd.Parameters.AddWithValue("@x", x)
acscmd.ExecuteNonQuery()
End If
myconnection.Close()
End Sub
我正在尝试仅从我的listview中的选中/选定项更新数据库 如果您想更新,只需选择您必须为其制作的项目
For II As Integer = 0 To ListView1.SelectedItems.Count - 1
sql = "UPDATE Pedidos SET Ped_est = @estado where x
= '" & ListView1.SelectedItems.Item(II).SubItems(0).Text & "'"
your code Here
Next
我希望这段代码对您有好处只要解决我的问题。。。如果有人有同样的问题,下面是代码ty
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\bnp\Desktop\Servicios1.mdb"
Dim myconnection As New OleDbConnection(constring)
Dim sql As String = ""
Dim estado As String = "Saved"
myconnection.Open()
For Each item As ListViewItem In ListView1.Items
If item.Checked Then
Dim x = item.SubItems(0).Text
sql = "UPDATE Pedidos SET Ped_est = @estado WHERE Id = @x"
Dim acscmd = New OleDb.OleDbCommand(sql, myconnection)
acscmd.Parameters.AddWithValue("@estado", estado)
acscmd.Parameters.AddWithValue("@x", x)
acscmd.ExecuteNonQuery()
End If
Next
myconnection.Close()
End Sub
私有子按钮2\u单击ByVal发件人作为System.Object,ByVal e作为System.EventArgs处理按钮2。单击 对于x作为整数=0的ListView1.Items.Count-1
' For i = 0 To ListView1.Items.Count - 1
If ListView1.Items(x).Checked = True Then
Dim Stradd12 As String = "INSERT INTO `tbl_student_attendence` ([student_id],[Student_Name],[Activities],[pDate],[pDay],[Ptime]) VALUES (student_id,Student_Name,Activities,pDate,pDay,Ptime )"
'Dim Stradd12 As String = "INSERT INTO `tbl_student_attendence` ([student_id]) VALUES (student_id )"
Dim cm12 As OleDbCommand = New OleDbCommand(Stradd12, DBconnection)
cm12.Parameters.AddWithValue("student_id", CType(ListView1.Items(x).SubItems(0).Text, Integer))
cm12.Parameters.AddWithValue("Student_Name", CType(ListView1.Items(x).SubItems(1).Text, String))
cm12.Parameters.AddWithValue("Activities", CType(ListView1.Items(x).SubItems(2).Text, String))
cm12.Parameters.AddWithValue("pDate", CType(DateTimePicker1.Value, String))
cm12.Parameters.AddWithValue("pDay", CType(ComboBox1.Text, String))
cm12.Parameters.AddWithValue("Ptime", CType(ListView1.Items(x).SubItems(3).Text, String))
'cm12.Parameters.AddWithValue("Registration_no", CType(TextBox1.Text, Integer))
cm12.ExecuteNonQuery()
cm12.Parameters.Clear()
End If
' Next
Next
MsgBox("Attendence Updated Successfully.")
End Sub
我想你需要在CheckedItems集合上循环,不是吗?使用调试器检查x值。这可能会对您有所启发。选中的项目与SelectedItems不同。ListView1.CheckedItems是一个集合,因此需要对其进行迭代以提取所需的内容。使用DataGridView,所有这些都会更容易。另外,请阅读并采取行动