LISTVIEW - FAZENDO UPDATE EM TABELA

SANROMAN 03/04/2014 14:28:01
#436850
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.
NILSONTRES 03/04/2014 16:44:29
#436858
Pela Mensagem de erro, só pode ser isso.
Troca esse trecho listHistoricoVendas.Items(i).SubItems(0)
por isso listHistoricoVendas.Items(i)Text
SANROMAN 04/04/2014 12:14:50
#436892
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.


SANROMAN 10/04/2014 18:55:25
#437172
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
Tópico encerrado , respostas não são mais permitidas