Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从Listview检查的项目更新数据库_Vb.net_Listview_Oledbconnection - Fatal编程技术网

Vb.net 从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\

大家好。 我正在尝试仅从我的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\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,所有这些都会更容易。另外,请阅读并采取行动