none
Criar novo Usuário usando CRUD RRS feed

  • Pergunta

  • Pessoal bom dia, gostaria de uma ajudar de vocês neste meu projeto em 3 Camadas.

    Tenho a minha Classe DAL Pessoas que trata os comando do CRUD

    //Button Salvar Estudante
    Private Sub btnSalvaPessoas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvaClientes.Click
    
            'faz uma validação de entrada de dados
            If _criar = True Or _editar = True Then
                If txtRazaoSocial.Text.Trim().Length = 0 Then
                    MessageBox.Show("Informe o nome do Estudante.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    txtRazaoSocial.Focus()
                    Exit Sub
                End If
    
            End If
    
            Me.Cursor = Cursors.WaitCursor
    
            Try
                _retvalor = False
                'cria uma instância da classe BLLEstudantes
                _objs = New Pessoas
                With _objs
                    'atribui os valores as propriedades do objeto
                    .RazaoSocial = txtRazaoSocial.Text.Trim()
                    .Fantasia = txtFantasia.Text.Trim()
                    .CPFCNPJ = txtCPFCNPJ.Text.Trim()
    
                    ' ''valida a idade
                    ''If txtIdade.Text.Trim().Length = 0 Then
                    ''    .Idade = 0
                    ''Else
                    '.Idade = Convert.ToInt32(txtIdade.Text.Trim())
                    'End If
    
                    .idEstudante= _cursoid
                    '.EstaPago = ChkPago.Checked
    
                    If _criar = True Then
                        .idEstudante= ProximoEstudanteID()
                        _retvalor = .inserir()
                    Else
                        .idEstudante= txtidEstudante.Text.Trim()
                        _retvalor = .alterar()
                    End If
                End With
    
                'valida a criação de um novo estudante
                If _retvalor = True Then
                    If _criar = True Then
                        MessageBox.Show("Novo estudante criado com sucesso.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Else
                        MessageBox.Show("Dados do estudante salvo com sucesso.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
                    End If
                    'BtnResetar_Click(sender, e)
                Else
                    If _criar = True Then
                        MessageBox.Show("Erro na criação do estudante.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        MessageBox.Show("Erro na atualização do estudante.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
                    End If
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Finally
                _objs = Nothing
            End Try
    
            Me.Cursor = Cursors.Default
    end Sub
    
    
    //Método do Form que Valida e retorna próximo ID da tabela
    
        Private Function ProximoEstudanteID() As Integer
    
            Me.Cursor = Cursors.WaitCursor
    
            Dim _tmpobj As New Estudantes()
            Dim _idvalor As Object = Nothing
            _idvalor = _tmpobj.ProximoEstudanteID
            _tmpobj = Nothing
    
            Me.Cursor = Cursors.Default
    
            Return _idvalor
    
        End Function
    
    
    
    //Função da Classe DAL Estudantes
    Public Function ProximoEstudanteID() As Integer
    
            _idvalor = Nothing
    
            Try
                _sqlcon = AcessoDados.Conectar()
    
                _sqlcom = New SqlClient.SqlCommand()
                With _sqlcom
                    .Connection = _sqlcon
                    .CommandType = CommandType.Text
    
                    .CommandText = "SELECT MAX(EstudanteID) AS EstudanteID FROM Estudantes"
                    _idvalor = .ExecuteScalar()
                End With
    
                If _idvalor Is Nothing Or _idvalor.Equals(System.DBNull.Value) Then
                    _idvalor = _idvalor
                Else
                    Dim valor As Integer = 0
                    valor = valor + 1
                End If
            Catch ex As Exception
                _idvalor = Nothing
                Throw ex
            Finally
                _sqlcom.Dispose()
                _sqlcon.Close()
            End Try
    
            Return _idvalor
    
        End Function
    
    
    

    O problema é que quando vou salvar ele informa o que o registro vou salvo com sucesso mais, vou olhar no banco de dados o registro que cadastrei não está ?

    Alguém poderia me ajudar ai ......agradeço

    quarta-feira, 31 de outubro de 2012 14:46

Respostas

  • Aqui está a classe o método da Classe BLL Estudantes

    //Método da Classe BLL Estudantes
    
    Public Function CriaNovoEstudante() As Boolean
    
                _retvalor = False
                Try
                    _obj = New Estudantes()
                    _retvalor = _obj.CriaNovoEstudante(EstudanteID, EstudanteNome, EstudanteEndereco, Telefone)
                Catch ex As Exception
                    Throw ex
                Finally
                    _obj = Nothing
                End Try
    
                Return _retvalor
    
            End Function
    
    
    //Método da Classe DAL Estudantes
    
    
            Public Function CriaNovoEstudante(ByVal EstudanteID As Integer, ByVal EstudanteNome As String, _
                                           ByVal EstudanteEndereco As String, ByVal Telefone As String) As Boolean
    
    
                _retvalor = False
    
                Try
                    _sqlcon = AcessoDados.Conectar()
                    _transacao = _sqlcon.BeginTransaction(IsolationLevel.ReadCommitted)
    
                    _sqlcom = New SqlClient.SqlCommand()
                    With _sqlcom
                        .Connection = _sqlcon
                        .CommandType = CommandType.Text
                        .CommandText = "INSERT INTO Estudantes " & _
                                       "(EstudantesNome, EstudantesEndereco, EstudantesTelefone) VALUES " & _
                                       "(@EstudantesNome,@EstudantesEndereco,@EstudantesTelefone)"
    
                        .Parameters.Add("@EstudantesID", SqlDbType.Int).Value = EstudanteID
                        .Parameters.Add("@EstudantesNome", SqlDbType.VarChar, 100).Value = EstudanteNome.Trim()
                        .Parameters.Add("@EstudantesEndereco", SqlDbType.VarChar, 100).Value = EstudanteEndereco.Trim()
                        .Parameters.Add("@EstudantesTelefone", SqlDbType.VarChar, 100).Value = Telefone.Trim()
    
                        .Transaction = _transacao
                        .ExecuteNonQuery()
                        .Parameters.Clear()
                    End With
    
                    _transacao.Commit()
                    _retvalor = True
                Catch ex As Exception
                    _transacao.Rollback()
                    Throw ex
    
    
                End Try
    
                Return _retvalor
    
            End Function

    Organizei um pouco mais o método que busca e me retorno um novo que esta no Form de Cadastro

        Private Function ProximoEstudanteID() As Integer
    
            Me.Cursor = Cursors.WaitCursor
    
            Dim _tmpobj As New BLLPessoas()
            Dim _idvalor As Object = Nothing
            _idvalor = _tmpobj.ProximoEstudanteID
            _tmpobj = Nothing
    
            Me.Cursor = Cursors.Default
    
            Return _idvalor
    
        End Function
    

    quarta-feira, 31 de outubro de 2012 15:43

Todas as Respostas

  • Não esquecendo gostaria de deixar as variáveis criadas na Classe DAL e no Form de Cadastro

    //CLASSE DAL Variable

    //Variable da Classe DAL
    #Region "Private Atributes/Variable "
        Dim _idvalor As Object = Nothing
        Dim _sqlcom As SqlClient.SqlCommand = Nothing
        Dim _sqlcon As SqlClient.SqlConnection = Nothing
    
    
    
        Private iIdPesoas As Integer
        Private dDataCadastro As Date
        Private dDataNasc As String
        Private sRazaoSocial As String
        Private sFantasia As String
        Private sRGIE As String
        Private sCPFCNPJ As String
        Private sOrgaoExp As String
        Private sIM As String
        Private sSUFRAMA As String
        Private sResponsavel As String
        Private sObservacao As String
        Private sStatus As String
    
    #End Region
    
    //Variable do FORM
    #Region "Private Varibales"
        Private _objs As Pessoas = Nothing
    
        Private _criar As Boolean = False
        Private _editar As Boolean = False
        Private _carregar As Boolean = True
        'Private _objc As BLLCurso = Nothing
        'Private _objs As BLLEstudantes = Nothing
        Private _dset As DataSet = Nothing
        Private _dlinha As DataRow = Nothing
        Private _retvalor As Boolean = False
        Private _cursoid As Integer = 0
        Dim _datetime As Date = Nothing
    #End Region

    quarta-feira, 31 de outubro de 2012 14:48
  • Eu nao vi em nenhum lugar onde vc cria sua tranaçao para salvar...

    o que vc esta usando como tecnologia para persintencia de dados (ADO.NEt, Linq SQL, Entity)???

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    quarta-feira, 31 de outubro de 2012 14:50
    Moderador
  • Aqui está a classe o método da Classe BLL Estudantes

    //Método da Classe BLL Estudantes
    
    Public Function CriaNovoEstudante() As Boolean
    
                _retvalor = False
                Try
                    _obj = New Estudantes()
                    _retvalor = _obj.CriaNovoEstudante(EstudanteID, EstudanteNome, EstudanteEndereco, Telefone)
                Catch ex As Exception
                    Throw ex
                Finally
                    _obj = Nothing
                End Try
    
                Return _retvalor
    
            End Function
    
    
    //Método da Classe DAL Estudantes
    
    
            Public Function CriaNovoEstudante(ByVal EstudanteID As Integer, ByVal EstudanteNome As String, _
                                           ByVal EstudanteEndereco As String, ByVal Telefone As String) As Boolean
    
    
                _retvalor = False
    
                Try
                    _sqlcon = AcessoDados.Conectar()
                    _transacao = _sqlcon.BeginTransaction(IsolationLevel.ReadCommitted)
    
                    _sqlcom = New SqlClient.SqlCommand()
                    With _sqlcom
                        .Connection = _sqlcon
                        .CommandType = CommandType.Text
                        .CommandText = "INSERT INTO Estudantes " & _
                                       "(EstudantesNome, EstudantesEndereco, EstudantesTelefone) VALUES " & _
                                       "(@EstudantesNome,@EstudantesEndereco,@EstudantesTelefone)"
    
                        .Parameters.Add("@EstudantesID", SqlDbType.Int).Value = EstudanteID
                        .Parameters.Add("@EstudantesNome", SqlDbType.VarChar, 100).Value = EstudanteNome.Trim()
                        .Parameters.Add("@EstudantesEndereco", SqlDbType.VarChar, 100).Value = EstudanteEndereco.Trim()
                        .Parameters.Add("@EstudantesTelefone", SqlDbType.VarChar, 100).Value = Telefone.Trim()
    
                        .Transaction = _transacao
                        .ExecuteNonQuery()
                        .Parameters.Clear()
                    End With
    
                    _transacao.Commit()
                    _retvalor = True
                Catch ex As Exception
                    _transacao.Rollback()
                    Throw ex
    
    
                End Try
    
                Return _retvalor
    
            End Function

    Organizei um pouco mais o método que busca e me retorno um novo que esta no Form de Cadastro

        Private Function ProximoEstudanteID() As Integer
    
            Me.Cursor = Cursors.WaitCursor
    
            Dim _tmpobj As New BLLPessoas()
            Dim _idvalor As Object = Nothing
            _idvalor = _tmpobj.ProximoEstudanteID
            _tmpobj = Nothing
    
            Me.Cursor = Cursors.Default
    
            Return _idvalor
    
        End Function
    

    quarta-feira, 31 de outubro de 2012 15:43