Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Arthur Paulino

Cadastro de usuarios

Recommended Posts

Eae galera, boa noite..

Bom, o programa da imobiliaria da minha familia esta muito obsoleto, então, decidi fazer um novo, sou estudante de Design de Games e tinha alguma idéia de programaçao, comecei vendo tutoriais e tudo mais e o programa ja esta com o cadastro de usuarios e de proprietarios funcionando, o proximo passo era fazer o cadastro de inquilinos, estava tudo quase feito, até surgir alguns problemas que estão me deixando louco... Nos outros cadastros, não existia checkbox (não era necessario), agora, na tb_inquilinos existe 2 checkboxs e eu acho que justamente eles estão causando os problemas, ai vai o código dessa form.

 

 

Public Class Inquilinos

   Dim acod_inquilino(1) As Integer
   Dim aNome(1) As String
   Dim aEndereco(1) As String
   Dim aTelefone(1) As String
   Dim aCelular(1) As String
   Dim aEmail(1) As String
   Dim aBairro(1) As String
   Dim aCidade(1) As String
   Dim aUf(1) As String
   Dim aCep(1) As String
   Dim aCpf(1) As String
   Dim aRg(1) As String
   Dim aQualificacao(1) As String
   Dim aNascimento(1) As String
   Dim aNomeFiador(1) As String
   Dim aCpfFiador(1) As String
   Dim aRgFiador(1) As String
   Dim aQualificacaoFiador(1) As String
   Dim aTelefoneFiador(1) As String
   Dim aCelularFiador(1) As String
   Dim aSeguroFianca(1) As String
   Dim aEmailFiador(1) As String
   Dim aFiador(1) As Boolean
   Dim aSFianca(1) As Boolean

   Dim vmodoI As String = "X"
   Private Sub Inquilinos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       carrega_inquilinos()
       carrega_campos()
       desab_campos()
   End Sub

   Private Sub carrega_inquilinos()
       Dim cs As String = My.Settings.DatabaseConnectionString
       Dim conect As New OleDb.OleDbConnection
       conect.ConnectionString = cs
       conect.Open()
       Dim selcomI As New OleDb.OleDbCommand
       selcomI.Connection = conect
       selcomI.CommandText = "SELECT * FROM tb_inquilino "

       Dim vleitorInqui As OleDb.OleDbDataReader
       vleitorInqui = selcomI.ExecuteReader()
       Dim ci As Integer = 0
       dgvInquilinos.Rows.Clear()
       Do While vleitorInqui.Read
           ci = ci + 1
           ReDim Preserve aNome(ci)
           ReDim Preserve acod_inquilino(ci)
           ReDim Preserve aTelefone(ci)
           ReDim Preserve aCelular(ci)
           ReDim Preserve aEmail(ci)
           ReDim Preserve aEndereco(ci)
           ReDim Preserve aBairro(ci)
           ReDim Preserve aCidade(ci)
           ReDim Preserve aUf(ci)
           ReDim Preserve aCep(ci)
           ReDim Preserve aCpf(ci)
           ReDim Preserve aRg(ci)
           ReDim Preserve aQualificacao(ci)
           ReDim Preserve aNascimento(ci)
           ReDim Preserve aNomeFiador(ci)
           ReDim Preserve aCpfFiador(ci)
           ReDim Preserve aRgFiador(ci)
           ReDim Preserve aQualificacaoFiador(ci)
           ReDim Preserve aTelefoneFiador(ci)
           ReDim Preserve aCelularFiador(ci)
           ReDim Preserve aSeguroFianca(ci)
           ReDim Preserve aEmailFiador(ci)
           ReDim Preserve aFiador(ci)
           ReDim Preserve aSFianca(ci)
           aNome(ci) = vleitorInqui("Nome")
           acod_inquilino(ci) = vleitorInqui("cod_inquilino")
           aTelefone(ci) = vleitorInqui("Telefone")
           aCelular(ci) = vleitorInqui("Celular")
           aEmail(ci) = vleitorInqui("Email")
           aEndereco(ci) = vleitorInqui("Endereco")
           aBairro(ci) = vleitorInqui("Bairro")
           aCidade(ci) = vleitorInqui("Cidade")
           aUf(ci) = vleitorInqui("UF")
           aCep(ci) = vleitorInqui("CEP")
           aCpf(ci) = vleitorInqui("CPF")
           aRg(ci) = vleitorInqui("RG")
           aQualificacao(ci) = vleitorInqui("Qualificacao")
           aNascimento(ci) = vleitorInqui("Nascimento")

           aNomeFiador(ci) = vleitorInqui("Nome_Fiador")
           aCpfFiador(ci) = vleitorInqui("CPF_Fiador")
           aRgFiador(ci) = vleitorInqui("RG_Fiador")
           aQualificacaoFiador(ci) = vleitorInqui("Qualificacao_Fiador")
           aTelefoneFiador(ci) = vleitorInqui("Telefone_Fiador")
           aCelularFiador(ci) = vleitorInqui("Celular_Fiador")
           aSeguroFianca(ci) = vleitorInqui("Seguro_Fianca")
           aEmailFiador(ci) = vleitorInqui("Email_Fiador")
           aFiador(ci) = vleitorInqui("Fiador")
           aSFianca(ci) = vleitorInqui("SFianca")
           dgvInquilinos.Rows.Add(acod_inquilino(ci), aNome(ci), aTelefone(ci), aCelular(ci), aEmail(ci))
       Loop
       conect.Close()
   End Sub

   Private Sub carrega_campos()
       Dim ind As Integer = dgvInquilinos.CurrentRow.Index + 1
       txtNome.Text = aNome(ind)
       TxtEndereco.Text = aEndereco(ind)
       TxtBairro.Text = aBairro(ind)
       txtCidade.Text = aCidade(ind)
       TxtUf.Text = aUf(ind)
       TxtCep.Text = aCep(ind)
       TxtCpf.Text = aCpf(ind)
       TxtRg.Text = aRg(ind)
       TxtQualificacao.Text = aQualificacao(ind)
       TxtTelefone.Text = aTelefone(ind)
       TxtCelular.Text = aCelular(ind)
       TxtEmail.Text = aEmail(ind)
       txtNascimento.Text = aNascimento(ind)
       txtNomeFiador.Text = aNomeFiador(ind)
       txtCpfFiador.Text = aCpfFiador(ind)
       txtRgFiador.Text = aRgFiador(ind)
       txtQualificacaoFiador.Text = aRgFiador(ind)
       txtTelefoneFiador.Text = aTelefoneFiador(ind)
       txtCelularFiador.Text = aCelularFiador(ind)
       txtSeguroFianca.Text = aSeguroFianca(ind)
       txtEmailFiador.Text = aEmailFiador(ind)
       ckbFiador.Checked = aFiador(ind)
       ckbSFianca.Checked = aSFianca(ind)
   End Sub

   Private Sub dgvInquilinos_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgvInquilinos.SelectionChanged
       carrega_campos()
       desab_campos()
   End Sub

   Private Sub btnAlterarI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterarI.Click
       vmodoI = "A"
       hab_campos()
       If ckbSFianca.Checked = True Then
           txtSeguroFianca.Enabled = True
       ElseIf ckbSFianca.Checked = False Then
           txtSeguroFianca.Enabled = False
       End If
       If ckbFiador.Checked = True Then
           txtNomeFiador.Enabled = True
           txtCpfFiador.Enabled = True
           txtRgFiador.Enabled = True
           txtQualificacaoFiador.Enabled = True
           txtTelefoneFiador.Enabled = True
           txtCelularFiador.Enabled = True
           txtEmailFiador.Enabled = True
       ElseIf ckbFiador.Checked = False Then
           txtNomeFiador.Enabled = False
           txtCpfFiador.Enabled = False
           txtRgFiador.Enabled = False
           txtQualificacaoFiador.Enabled = False
           txtTelefoneFiador.Enabled = False
           txtCelularFiador.Enabled = False
           txtEmailFiador.Enabled = False
       End If
   End Sub

   Private Sub hab_campos()
       btnIncluirI.Enabled = False
       btnAlterarI.Enabled = False
       btnRemoverI.Enabled = False
       btnCancelarI.Enabled = True
       btnConfirmarI.Enabled = True
       btnOrdenar.Enabled = True
       btnVoltar.Enabled = True
       btnAvancar.Enabled = True
       btnProcurar.Enabled = True
       txtNome.Enabled = True
       TxtEndereco.Enabled = True
       TxtBairro.Enabled = True
       txtCidade.Enabled = True
       TxtUf.Enabled = True
       TxtCep.Enabled = True
       TxtCpf.Enabled = True
       TxtRg.Enabled = True
       txtNascimento.Enabled = True
       TxtQualificacao.Enabled = True
       TxtTelefone.Enabled = True
       TxtCelular.Enabled = True
       TxtEmail.Enabled = True
       ckbFiador.Enabled = True
       ckbSFianca.Enabled = True
   End Sub

   Public Sub desab_campos()
       btnIncluirI.Enabled = True
       btnAlterarI.Enabled = True
       btnRemoverI.Enabled = True
       btnCancelarI.Enabled = False
       btnConfirmarI.Enabled = False
       btnOrdenar.Enabled = False
       btnVoltar.Enabled = False
       btnAvancar.Enabled = False
       btnProcurar.Enabled = False
       txtNome.Enabled = False
       txtEndereco.Enabled = False
       txtBairro.Enabled = False
       txtCidade.Enabled = False
       txtUf.Enabled = False
       txtCep.Enabled = False
       txtCpf.Enabled = False
       txtRg.Enabled = False
       txtNascimento.Enabled = False
       txtQualificacao.Enabled = False
       txtTelefone.Enabled = False
       TxtCelular.Enabled = False
       TxtEmail.Enabled = False
       txtSeguroFianca.Enabled = False
       txtNomeFiador.Enabled = False
       txtCpfFiador.Enabled = False
       txtRgFiador.Enabled = False
       txtQualificacaoFiador.Enabled = False
       txtTelefoneFiador.Enabled = False
       txtCelularFiador.Enabled = False
       txtSeguroFianca.Enabled = False
       txtEmailFiador.Enabled = False
       ckbFiador.Enabled = False
       ckbSFianca.Enabled = False
   End Sub

   Private Sub ckbFiador_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckbFiador.CheckedChanged
       If ckbFiador.Checked = True Then
           txtNomeFiador.Enabled = True
           txtCpfFiador.Enabled = True
           txtRgFiador.Enabled = True
           txtQualificacaoFiador.Enabled = True
           txtTelefoneFiador.Enabled = True
           txtCelularFiador.Enabled = True
           txtEmailFiador.Enabled = True
       ElseIf ckbFiador.Checked = False Then
           txtNomeFiador.Enabled = False
           txtCpfFiador.Enabled = False
           txtRgFiador.Enabled = False
           txtQualificacaoFiador.Enabled = False
           txtTelefoneFiador.Enabled = False
           txtCelularFiador.Enabled = False
           txtEmailFiador.Enabled = False
       End If
   End Sub

   Private Sub ckbSFianca_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckbSFianca.CheckedChanged
       If ckbSFianca.Checked = True Then
           txtSeguroFianca.Enabled = True
       ElseIf ckbSFianca.Checked = False Then
           txtSeguroFianca.Enabled = False
       End If
   End Sub

   Private Sub btnCancelarI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelarI.Click
       desab_campos()
       carrega_campos()
   End Sub

   Private Sub btnConfirmarI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConfirmarI.Click
       If vmodoI = "A" Then
           Dim cs As String = My.Settings.DatabaseConnectionString
           Dim conect As New OleDb.OleDbConnection
           conect.ConnectionString = cs
           Try
               conect.Open()
               Dim selcomI As New OleDb.OleDbCommand
               selcomI.Connection = conect
               selcomI.CommandText = "UPDATE tb_inquilino SET Nome='" & txtNome.Text & "', Endereco='" & TxtEndereco.Text _
                                                    & "', Bairro='" & TxtBairro.Text & "', Cidade='" & txtCidade.Text _
                                                    & "', UF='" & TxtUf.Text & "', CEP='" & TxtCep.Text _
                                                    & "', CPF='" & TxtCpf.Text & "', RG='" & TxtRg.Text & "', Nascimento='" & txtNascimento.Text _
                                                    & "', Qualificacao='" & TxtQualificacao.Text & "', Telefone='" & TxtTelefone.Text _
                                                    & "', Celular='" & TxtCelular.Text & "', Email='" & TxtEmail.Text _
                                                    & "', Fiador='" & ckbFiador.Checked & "', SFianca='" & ckbSFianca.Checked _
                                                    & "', Nome_Fiador='" & txtNomeFiador.Text & "', CPF_Fiador='" & txtCpfFiador.Text _
                                                    & "', RG_Fiador='" & txtRgFiador.Text & "', Qualificacao_Fiador='" & txtQualificacaoFiador.Text _
                                                    & "', Telefone Fiador='" & txtTelefoneFiador.Text & "', Celular_Fiador='" & txtCelularFiador.Text _
                                                    & "', Seguro_Fianca='" & txtSeguroFianca.Text & "', Email_Fiador='" & txtEmailFiador.Text & "' " _
                                                    & "WHERE cod_inquilino = " & acod_inquilino(dgvInquilinos.CurrentRow.Index + 1)

               selcomI.ExecuteNonQuery()
               conect.Close()
           Catch ex As Exception
               MessageBox.Show("Erro de gravação de dados!" & vbCrLf & ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error)
           End Try
           desab_campos()
           carrega_inquilinos()
       End If
       If vmodoI = "I" Then
           Dim cs As String = My.Settings.DatabaseConnectionString
           Dim conect As New OleDb.OleDbConnection
           conect.ConnectionString = cs
           Try
               conect.Open()
               Dim selcom As New OleDb.OleDbCommand
               selcom.Connection = conect
               selcom.CommandText = "INSERT INTO tb_inquilino ( Nome, Endereco, Bairro, Cidade, UF, CEP, CPF, RG, Qualificacao, Telefone, Celular, Fiador, Nome_Fiador, CPF_Fiador, RG_Fiador, Qualificacao_Fiador, Telefone_Fiador, Celular_Fiador, Seguro_Fianca, Email_Fiador, Email, Nascimento, SFianca ) " & _
                   "VALUES ( '" & txtNome.Text & "', '" & TxtEndereco.Text & "', '" & TxtBairro.Text & "', '" & txtCidade.Text & "', '" & TxtUf.Text & "', '" & TxtCep.Text & "', '" & TxtCpf.Text & "', '" & TxtRg.Text & "', '" & TxtQualificacao.Text & "', '" & TxtTelefone.Text & "', '" & TxtCelular.Text & _
                   "', '" & ckbFiador.Checked & "', '" & txtNomeFiador.Text & "', '" & txtCpfFiador.Text & "', '" & txtRgFiador.Text & "', '" & txtQualificacaoFiador.Text & "', '" & txtTelefoneFiador.Text & "', '" & txtCelularFiador.Text & "', '" & txtSeguroFianca.Text & "', '" & txtEmailFiador.Text & _
                   "', '" & TxtEmail.Text & "', '" & txtNascimento.Text & "', '" & ckbSFianca.Checked & "' )"
               If selcom.ExecuteNonQuery() Then
                   MsgBox("Inquilino incluido com sucesso!")
               Else
                   MsgBox("Erro ! Inquilino não incluido !")
               End If
               conect.Close()
           Catch ex As Exception
               MessageBox.Show("Erro de gravação de dados!" & vbCrLf & ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error)
           End Try
           desab_campos()
           carrega_inquilinos()
       End If
       If vmodoI = "E" Then
           Dim cs As String = My.Settings.DatabaseConnectionString
           Dim conect As New OleDb.OleDbConnection
           conect.ConnectionString = cs
           Try
               conect.Open()
               Dim selcom As New OleDb.OleDbCommand
               selcom.Connection = conect
               selcom.CommandText = "DELETE FROM tb_inquilino WHERE cod_inquilino = " & acod_inquilino(dgvInquilinos.CurrentRow.Index + 1)
               If selcom.ExecuteNonQuery() Then
                   MsgBox("Inquilino excluido com sucesso!")
               Else
                   MsgBox("Erro ! Inquilino não excluido !")
               End If
               conect.Close()
           Catch ex As Exception
               MessageBox.Show("Erro de gravação de dados!" & vbCrLf & ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error)
           End Try
           desab_campos()
           carrega_inquilinos()
       End If
   End Sub

   Private Sub btnIncluirI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluirI.Click
       hab_campos()
       vmodoI = "I"
       txtNome.Text = ""
       TxtEndereco.Text = ""
       TxtBairro.Text = ""
       txtCidade.Text = ""
       TxtUf.Text = ""
       TxtBairro.Text = ""
       TxtCep.Text = ""
       TxtCpf.Text = ""
       TxtRg.Text = ""
       txtNascimento.Text = ""
       TxtQualificacao.Text = ""
       TxtTelefone.Text = ""
       TxtCelular.Text = ""
       TxtEmail.Text = ""
       txtNome.Focus()
       txtNomeFiador.Text = ""
       txtCpfFiador.Text = ""
       txtRgFiador.Text = ""
       txtQualificacaoFiador.Text = ""
       txtTelefoneFiador.Text = ""
       txtCelularFiador.Text = ""
       txtSeguroFianca.Text = ""
       txtEmailFiador.Text = ""
       ckbFiador.Checked = False
       ckbSFianca.Checked = False
   End Sub

End Class

As duas variaveis declaradas (Fiador, SFianca) são os checkboxs, os erros vem nas seguintes operações, quando tento criar um novo, ao clicar em salvar, o código chega até a parte do INSERT e trava ali (usei o passo a passo e descobri que o erro esta ali) é um erro com a mensagem assim: Data type mismatch in criteria expression<<

O segundo erro é ao alterar, a mensagem é a seguinte syntax error in UPDATE statement...

espero que alguem possa me ajudar.. obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos ver

 

Primeiro, porque tantos arrays? Desconsidere esta parte se você está fazendo o programa receber todos os dados de uma só vez e depois ir buscando dentro do array.

 

 

Dim acod_inquilino(1) As Integer
   Dim aNome(1) As String
   Dim aEndereco(1) As String
   Dim aTelefone(1) As String
   Dim aCelular(1) As String
   Dim aEmail(1) As String
   Dim aBairro(1) As String
   Dim aCidade(1) As String
   Dim aUf(1) As String
   Dim aCep(1) As String
   Dim aCpf(1) As String
   Dim aRg(1) As String
   Dim aQualificacao(1) As String
   Dim aNascimento(1) As String
   Dim aNomeFiador(1) As String
   Dim aCpfFiador(1) As String
   Dim aRgFiador(1) As String
   Dim aQualificacaoFiador(1) As String
   Dim aTelefoneFiador(1) As String
   Dim aCelularFiador(1) As String
   Dim aSeguroFianca(1) As String
   Dim aEmailFiador(1) As String
   Dim aFiador(1) As Boolean
   Dim aSFianca(1) As Boolean

 

 

Se eles vão se comportar como variáveis normais, não há necessidade de serem Arrays.

 

Isto tambem é desnecessário, se você está procurando um cara em particular por vez, ou então mesmo vários juntos, mas cada variável só recebe um dado por vez não é necessário realocar memória e nem espaço para Arrays de 2 posições que acabam por receber apenas 1 valor, exclua isto:

 

 

ReDim Preserve aNome(ci)
           ReDim Preserve acod_inquilino(ci)
           ReDim Preserve aTelefone(ci)
           ReDim Preserve aCelular(ci)
           ReDim Preserve aEmail(ci)
           ReDim Preserve aEndereco(ci)
           ReDim Preserve aBairro(ci)
           ReDim Preserve aCidade(ci)
           ReDim Preserve aUf(ci)
           ReDim Preserve aCep(ci)
           ReDim Preserve aCpf(ci)
           ReDim Preserve aRg(ci)
           ReDim Preserve aQualificacao(ci)
           ReDim Preserve aNascimento(ci)
           ReDim Preserve aNomeFiador(ci)
           ReDim Preserve aCpfFiador(ci)
           ReDim Preserve aRgFiador(ci)
           ReDim Preserve aQualificacaoFiador(ci)
           ReDim Preserve aTelefoneFiador(ci)
           ReDim Preserve aCelularFiador(ci)
           ReDim Preserve aSeguroFianca(ci)
           ReDim Preserve aEmailFiador(ci)
           ReDim Preserve aFiador(ci)
           ReDim Preserve aSFianca(ci)

 

 

 

Agora a parte que você pode reconsiderar se você desconsiderou o acima.

 

Seus checkboxes estão retornando valores boolean, ou seja, true ou false, mas ao salvar no banco de dados eles podem ser booleans apenas se você os converter para boolean, no seu caso acredito que seria muito mais facil você trocar o tipo de dados da coluna onde recebe o valor do checkbox para integer 0/1, assim quando o leitor ler, ao invés de ele puxar uma String escrito "True" ou "False" (que não é boolean) ele vai puxar os numeros em integer que você pode manipular para serem ou true ou false.

 

Em sintese, seu leitor está lendo uma string e o que sua variável aceita é um boolean.

 

Para não ter que fazer tudo isso que eu falei você pode mudar tudo para string e quando for verificar use:

 

if <variável>(<index>).Equals("True") Then

 

Ou

 

if <variável>(<index>).Equals("False") Then

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.