LISTVIEW - FAZENDO UPDATE EM TABELA
Bom dia amigos
Tenho um listview com checkbox, gostaria que os itens ativados pelo checkbox fizessem um update em uma tabela.
Estou tentando com o seguinte código:
Private Sub alteraDados()
Dim con As New SqlConnection(strCmd)
Dim cmd As SqlCommand
con.Open()
Try
For i As Integer = 0 To listHistoricoVendas.Items.Count - 1
Dim sql As String = [Ô][Ô]
Dim dataVenda As Integer = Val(listHistoricoVendas.Items(i).SubItems(0))
Dim dvPrazo As Integer = Val(listHistoricoVendas.Items(i).SubItems(3))
Dim dvFinalizada As String = [Ô]SELECT * FROM TB_FinalizaVenda WHERE DataVenda =[Ô] & dataVenda
cmd = New SqlCommand(dataVenda, con)
dvFinalizada = CStr(cmd.ExecuteScalar())
sql = [Ô]UPDATE TB_FinalizaVenda SET FormaPagamento = [ô]Pago[ô] WHERE DataVenda = [Ô] & (dataVenda)
cmd = New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
cmd = Nothing
End Try
End Sub
Aperece o seguinte erro: O argumento [ô]expression[ô] não pode ser convertido no tipo listviewsubitem
Se alguém puder me ajudar.
Tenho um listview com checkbox, gostaria que os itens ativados pelo checkbox fizessem um update em uma tabela.
Estou tentando com o seguinte código:
Private Sub alteraDados()
Dim con As New SqlConnection(strCmd)
Dim cmd As SqlCommand
con.Open()
Try
For i As Integer = 0 To listHistoricoVendas.Items.Count - 1
Dim sql As String = [Ô][Ô]
Dim dataVenda As Integer = Val(listHistoricoVendas.Items(i).SubItems(0))
Dim dvPrazo As Integer = Val(listHistoricoVendas.Items(i).SubItems(3))
Dim dvFinalizada As String = [Ô]SELECT * FROM TB_FinalizaVenda WHERE DataVenda =[Ô] & dataVenda
cmd = New SqlCommand(dataVenda, con)
dvFinalizada = CStr(cmd.ExecuteScalar())
sql = [Ô]UPDATE TB_FinalizaVenda SET FormaPagamento = [ô]Pago[ô] WHERE DataVenda = [Ô] & (dataVenda)
cmd = New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
cmd = Nothing
End Try
End Sub
Aperece o seguinte erro: O argumento [ô]expression[ô] não pode ser convertido no tipo listviewsubitem
Se alguém puder me ajudar.
Pela Mensagem de erro, só pode ser isso.
Troca esse trecho listHistoricoVendas.Items(i).SubItems(0)
por isso listHistoricoVendas.Items(i)Text
Troca esse trecho listHistoricoVendas.Items(i).SubItems(0)
por isso listHistoricoVendas.Items(i)Text
Olá NILSONTRES
Fiz a troca sugerida e não funcionou ai mudei o código como abaixo:
Private Sub alteraDados()
Dim con As New SqlConnection(strCmd)
Dim cmd As SqlCommand
con.Open()
Try
For Each ListItem As ListViewItem In listHistoricoVendas.Items
If (ListItem.Checked) Then
Dim sql As String = [Ô][Ô]
Dim dataVenda As Date = Date.FromOADate(Val(listHistoricoVendas.Items(0).Text))
Dim dvFinalizada As String = [Ô]SELECT FormaPagamento FROM TB_FinalizaVenda WHERE DataVenda =[Ô] & dataVenda
cmd = New SqlCommand(dvFinalizada, con)
dvFinalizada = cmd.ExecuteScalar()
sql = [Ô]UPDATE TB_FinalizaVenda SET FormaPagamento = [ô]À Prazo - Pago[ô] WHERE DataVenda = [Ô] & dataVenda
cmd = New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
cmd = Nothing
End Try
End Sub
Dá o seguinte erro: Conflito no tipo de operando: date e incompatÃvel com int
Na linha: Dim dataVenda As Date = Date.FromOADate(Val(listHistoricoVendas.Items(0).Text)) o resultado é 04/04/2014
Na linha seguinte: Dim dvFinalizada As String = [Ô]SELECT FormaPagamento FROM TB_FinalizaVenda WHERE DataVenda =[Ô] & dataVenda
datavenda aparece com o valor #1/3/1900#
Não estou entendendo.
Fiz a troca sugerida e não funcionou ai mudei o código como abaixo:
Private Sub alteraDados()
Dim con As New SqlConnection(strCmd)
Dim cmd As SqlCommand
con.Open()
Try
For Each ListItem As ListViewItem In listHistoricoVendas.Items
If (ListItem.Checked) Then
Dim sql As String = [Ô][Ô]
Dim dataVenda As Date = Date.FromOADate(Val(listHistoricoVendas.Items(0).Text))
Dim dvFinalizada As String = [Ô]SELECT FormaPagamento FROM TB_FinalizaVenda WHERE DataVenda =[Ô] & dataVenda
cmd = New SqlCommand(dvFinalizada, con)
dvFinalizada = cmd.ExecuteScalar()
sql = [Ô]UPDATE TB_FinalizaVenda SET FormaPagamento = [ô]À Prazo - Pago[ô] WHERE DataVenda = [Ô] & dataVenda
cmd = New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
cmd = Nothing
End Try
End Sub
Dá o seguinte erro: Conflito no tipo de operando: date e incompatÃvel com int
Na linha: Dim dataVenda As Date = Date.FromOADate(Val(listHistoricoVendas.Items(0).Text)) o resultado é 04/04/2014
Na linha seguinte: Dim dvFinalizada As String = [Ô]SELECT FormaPagamento FROM TB_FinalizaVenda WHERE DataVenda =[Ô] & dataVenda
datavenda aparece com o valor #1/3/1900#
Não estou entendendo.
Olá amigos
O Código ficou assim:
Private Sub alterarFormaPgto()
Dim con As New SqlConnection(strCmd)
con.Open()
Try
For Each ListView As ListViewItem In listHistoricoVendas.Items
If (ListView.Checked) Then
Dim strsql As String = [Ô][Ô]
Dim formaPago As String = [Ô]Pago[Ô]
Dim codVenda As Integer = ListView.Text
Dim strReceber As String = [Ô]SELECT id_FinalizaVenda FROM TB_FinalizaVenda WHERE id_FinalizaVenda =[Ô] & codVenda
cmd = New SqlCommand(strReceber, con)
strReceber = CInt(cmd.ExecuteScalar())
strsql = [Ô]UPDATE TB_FinalizaVenda SET FormaPagamento = [ô][Ô] & formaPago & [Ô][ô] WHERE id_FinalizaVenda =[Ô] & codVenda
cmd = New SqlCommand(strsql, con)
cmd.ExecuteNonQuery()
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
cmd = Nothing
End Try
End Sub
Estou finalizando o tópico
O Código ficou assim:
Private Sub alterarFormaPgto()
Dim con As New SqlConnection(strCmd)
con.Open()
Try
For Each ListView As ListViewItem In listHistoricoVendas.Items
If (ListView.Checked) Then
Dim strsql As String = [Ô][Ô]
Dim formaPago As String = [Ô]Pago[Ô]
Dim codVenda As Integer = ListView.Text
Dim strReceber As String = [Ô]SELECT id_FinalizaVenda FROM TB_FinalizaVenda WHERE id_FinalizaVenda =[Ô] & codVenda
cmd = New SqlCommand(strReceber, con)
strReceber = CInt(cmd.ExecuteScalar())
strsql = [Ô]UPDATE TB_FinalizaVenda SET FormaPagamento = [ô][Ô] & formaPago & [Ô][ô] WHERE id_FinalizaVenda =[Ô] & codVenda
cmd = New SqlCommand(strsql, con)
cmd.ExecuteNonQuery()
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
cmd = Nothing
End Try
End Sub
Estou finalizando o tópico
Tópico encerrado , respostas não são mais permitidas