none
Como retornar uma mensagem através de uma classe em c# asp.net ? RRS feed

  • Pergunta

  • Olá, boa tarde !

    Senhores, estou tentando verificar um registro antes de inserir, e gostaria que caso fosse encontrado o registro, ele me retornasse uma mensagem, não estou conseguindo fazer com que a mensagem retorne, pois não tenho o respose.write.  Segue abaixo o codigo da minha classe.

                                   

     public DataTable Inserir_Hospedes(Hospedes_TO p)

            {   conn.Open();

                String sqlMovimento = " Select * From Hospedes Where " +
                                      " Hospedes.cpf Like @cpf ";
                SqlCommand cmdMovimento = new SqlCommand(sqlMovimento, conn);
                cmdMovimento.Parameters.AddWithValue("@cpf", p.Cpf + "%");
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmdMovimento;
                DataSet ds = new DataSet();
                da.Fill(ds);

                if (ds.Tables[0].DefaultView.Count == 0)
                {
                    conn.Open();
                    SqlTransaction transacao = conn.BeginTransaction();
                    StringBuilder sb = new StringBuilder();
                    //String sqlLua = "INSERT INTO [dbo].[Lua] ([Solicitante], [Ministerio], [Assunto], [Data], [Email], [Cel], [Res], [Descricao],[Tipo],[Status]) VALUES (@Solicitante, @Ministerio, @Assunto, @Data, @Email, @Cel, @Res, @Descricao, @Tipo, @Status)";
                    String sqlProduto = "INSERT INTO [dbo].[Hospedes] ([nome ],[rg],[cpf],[nacionalidade],[naturalidade],[pais], [idade], [sexo],[endereco],[bairro],[cidade],[estado],[cep],[tel],[celular],[veiculo],[placa]) VALUES (@nome, @rg, @cpf, @nacionalidade, @naturalidade, @pais, @idade, @sexo, @endereco, @bairro, @cidade, @estado, @cep, @tel, @celular, @veiculo, @placa)";
                    SqlCommand cmdProduto = new SqlCommand(sqlProduto, conn, transacao);
                    //cmdProduto.Parameters.AddWithValue("@data_cadastro",p.Data_cadastro);
                    cmdProduto.Parameters.AddWithValue("@nome", p.Nome);
                    cmdProduto.Parameters.AddWithValue("@rg", p.Rg);
                    cmdProduto.Parameters.AddWithValue("@cpf", p.Cpf);
                    cmdProduto.Parameters.AddWithValue("@nacionalidade", p.Nacionalidade);
                    cmdProduto.Parameters.AddWithValue("@naturalidade", p.Naturalidade);
                    //cmdProduto.Parameters.AddWithValue("@nascimento", p.Nascimento);
                    cmdProduto.Parameters.AddWithValue("@pais", p.País);
                    cmdProduto.Parameters.AddWithValue("@idade", p.Idade);
                    cmdProduto.Parameters.AddWithValue("@sexo", p.Sexo);
                    // cmdProduto.Parameters.AddWithValue("@email", p.Email);
                    cmdProduto.Parameters.AddWithValue("@endereco", p.Endereco);
                    cmdProduto.Parameters.AddWithValue("@bairro", p.Bairro);
                    cmdProduto.Parameters.AddWithValue("@cidade", p.Cidade);
                    cmdProduto.Parameters.AddWithValue("@estado", p.Estado);
                    cmdProduto.Parameters.AddWithValue("@cep", p.Cep);
                    cmdProduto.Parameters.AddWithValue("@tel", p.Tel);
                    cmdProduto.Parameters.AddWithValue("@celular", p.Celular);
                    cmdProduto.Parameters.AddWithValue("@veiculo", p.Veiculo);
                    cmdProduto.Parameters.AddWithValue("@placa", p.Placa);
                    cmdProduto.ExecuteNonQuery();

                    transacao.Commit();
                    conn.Close();
                }
                 else
                {
                    return ""; // gostaria de inserir a mensagem aqui       
                }
                return ds.Tables[0];

            }

    Abaixo o codigo do meu botão para inserir chamando a classe:

    protected void Button1_Click(object sender, EventArgs e)
        {
            Hospedes_TO to = new Hospedes_TO();
            Hospedes_ADO ado = new Hospedes_ADO();
            to.Nome = txtNome.Text;
            to.Rg = txtRG.Text;
            to.Cpf = txtCPF.Text;
            to.Nacionalidade = txtNacionalidade.Text;
            to.Naturalidade = txtNaturalidade.Text;
            to.País = txtPais.Text;
            to.Idade = int.Parse(txtIdade.Text);
            to.Sexo = txtSexo.Text;
            to.Endereco = txtLogradouro.Text;
            to.Bairro = txtBairro.Text;
            to.Cidade = txtCidade.Text;
            to.Estado = txtEstado.Text;
            to.Cep = txtCep.Text;
            to.Tel = txtTelResidencial.Text;
            to.Celular = txtCelular.Text;
            to.Veiculo = txtVeiculo.Text;
            to.Placa = txtPlaca.Text;
            ado.Inserir_Hospedes(to);

    }

    Obrigado.

    Anderson


    Jimi Anderson


    • Editado Anderson Mac quarta-feira, 2 de janeiro de 2013 19:06 Detlahes
    quarta-feira, 2 de janeiro de 2013 19:04

Respostas

  • Você pode descer a mensagem para a View em forma de uma exceção...

    else
     {
        //return ""; // gostaria de inserir a mensagem aqui      

        throw new ApplicationException("Sua mensagem aqui"); 

    }

    E na View você captura com o Catch


    Leonardo Lourenço Silva

    • Marcado como Resposta Anderson Mac sexta-feira, 4 de janeiro de 2013 05:24
    quinta-feira, 3 de janeiro de 2013 17:50

Todas as Respostas

  • coloque sempre dentro de um try

    try

    {

    }

    catch(Exception ex)

    {

      throw ex.message

    }


    Junior

    quarta-feira, 2 de janeiro de 2013 19:56
  • Cara,

    Você pode fazer um IF EXISTS, executar no banco e retornar a mensagem de acordo com o que deseja.
    Exemplo:

    IF Exists(Select 1 From ' + @Tabela + ' Where ' + @Campo + ' Is Null And codFuncionario=' + @codFunc) SELECT 'REGISTRO JÁ EXISTE' M

    RETURN ELSE INSERT INTO ...

    RETURN




    Atenciosamente, Samuel dos Anjos

    quarta-feira, 2 de janeiro de 2013 22:26
  • Jimi,

    Você pode usar um parâmetro do tipo output

    public DataTable Inserir_Hospedes(Hospedes_TO p, out mensagem)

    e no seu else:

    else
    {
    mensagem = "";
    }

    quinta-feira, 3 de janeiro de 2013 12:02
  • Você pode descer a mensagem para a View em forma de uma exceção...

    else
     {
        //return ""; // gostaria de inserir a mensagem aqui      

        throw new ApplicationException("Sua mensagem aqui"); 

    }

    E na View você captura com o Catch


    Leonardo Lourenço Silva

    • Marcado como Resposta Anderson Mac sexta-feira, 4 de janeiro de 2013 05:24
    quinta-feira, 3 de janeiro de 2013 17:50
  • Obrigado Jovem...

    Feliz 2013 !!!


    Jimi Anderson

    sexta-feira, 4 de janeiro de 2013 05:24