ALTERAR REGISTRO NO BANCO DE DADOS

MCJOTA 26/06/2013 22:01:46
#425279
Boa noite pessoal...

Estou com um problema que pode parecer simples, más tá me dando dor de cabeça!

Tenho um Form com 2 Combobox, 1 TextBox e 1 Button.
No Load do Form o primeiro ComboBox carrega os nomes dos locatários.
Ao escolher o nome no primeiro ComboBox, o segundo ComboBox carrega os Dvds locados pelo locatário.
Ao escolher o Dvd no segundo ComboBox, o TextBox informa se foi ou não devolvido, com SIM ou NÃO.

Minha dificuldade é em salvar a alteração na devolução do Dvd, ao navegar pela tabela vai me mostrar NÃO no TextBox, então queria que quando alterasse para SIM e apertasse o Button atualizasse na tabela.

Podem me ajudar?

Desde já agradeço.......
OMAR2011 26/06/2013 22:36:49
#425280
Não se avexe bichin,vai aparecer alguém para responder.
Coloque seu código para ver onde ou o que está faltando.
ONBASS 27/06/2013 00:21:48
#425284
Olá, poderias usar também uma Combo para SIM/NÃO.

Ao clicar no botão iria rodar apenas uma SQL de atualização no banco.

Supondo que tenhas um campo, tipo DEVOLVIDO, na base, ficaria algo como:

[Ô]UPDATE tblLocacoes SET devolvido = [ô]SIM[ô] WHERE locatario =[ô][Ô] + cboLocatario + [Ô][ô] AND filme =[ô][Ô] + cboFilme + [Ô][ô][Ô]

Esta é apenas uma SQL genérica e passível de erros, visto que estou iniciando em .Net e não atuo na área profissionalmente, mas tente adaptar ai.

Abraço
MCJOTA 27/06/2013 00:24:45
#425285
Boas Omar.....
O código que uso para carregar os itens do banco para o primeiro ComboBox é o seguinte:

strsql = [Ô]Select * from TabelaLocacao[Ô]
Dim acscmd As New OleDb.OleDbCommand
acscmd.CommandText = strsql
acscmd.Connection = acsconn
acsdr = acscmd.ExecuteReader
If (acsdr.Read() = True) Then
ComboBox1.Items.Add(acsdr([Ô]Locatarios[Ô]))

End If
acscmd.Dispose()
acsdr.Close()

O código que uso para carregar os itens do banco para o Segundo ComboBox é o seguinte:

strsql = [Ô]Select * from TabelaLocatarios[Ô] where Locatarios=[ô][Ô] & ComboBox1.Text & [Ô][ô][Ô]
Dim acscmd As New OleDb.OleDbCommand
acscmd.CommandText = strsql
acscmd.Connection = acsconn
acsdr = acscmd.ExecuteReader
If (acsdr.Read() = True) Then
ComboBox2..Items.Add(acsdr([Ô]Locacoes[Ô]))

End If
acscmd.Dispose()
acsdr.Close()

E o código que uso para carregar os itens do banco para o TextBox é o seguinte:

strsql = [Ô]Select * from TabelaLocatarios[Ô] where Locatarios=[ô][Ô] & ComboBox2.Text & [Ô][ô][Ô]
Dim acscmd As New OleDb.OleDbCommand
acscmd.CommandText = strsql
acscmd.Connection = acsconn
acsdr = acscmd.ExecuteReader
If (acsdr.Read() = True) Then
TextBox1.Text = acsdr([Ô]Devolucoes[Ô])

End If
acscmd.Dispose()
acsdr.Close()

Só falta o código para o botão alterar.....
Se alguém puder me ajudar fico agradecido....

Abraços.....
PEGUDO 27/06/2013 10:08:10
#425295
O código do ONBASS parace que ajuda a resolver seu problema, mas eu colocaria, no campo DEVOLVIDO, não um campo do tipo TEXT e sim um campo do tipo SIM/NÃO ou YES/NO, etc.

Assim você colocaria o UPDATE para modificar o campo DEVOLVIDO como True para SIM e False para NÃO.
algo como:
Private Sub AlterarDevolucao (ByVal qualOpcao As String)
Dim StrSQL As String = [Ô][Ô]
Dim Opcao As Boolean

Select Case qualOpcao
Case [txt-color=#e80000][Ô]Sim[Ô][/txt-color]
Opcao = [txt-color=#0000f0]True[/txt-color]
Case [txt-color=#e80000][Ô]Não[Ô][/txt-color]
Opcao = [txt-color=#0000f0]False[/txt-color]
End Select

StrSQL = String.Format([txt-color=#e80000][Ô]UPDATE tblLocacoes SET Devolvido = {0}[Ô][/txt-color], Opcao)

[txt-color=#007100] [ô]Agora segue seu código para abrir a conexão com o banco de dados e executar o camando acima.[/txt-color]
End Sub

Fiz este código de cabeça. Não testei mas o raciocínio é este.
ONBASS 30/06/2013 23:59:34
#425389
exato PEGUDO

DEVOLVIDO = Sim/Não, Yes/No
Faça seu login para responder