Jump to content

POWERED BY:

Archived

This topic is now archived and is closed to further replies.

Massa Urbana

Usando o DLINQ

Recommended Posts

Pessoal da uma ajuda Rápida.

Ta dando um erro e não to enxergando onde estou errando...

 

quero fazer um select pelo DLINQ só que na hora de selecionar o TextBox.Text tá dando um erro no convert...

 

como resolvo isso?

 

Olhem o código:

 

    protected void pesquisarButton_Click(object sender, EventArgs e)
    {
        string CampoCodigo = Convert.ToInt32(codigoASPxTextBox.Text.Trim); //O erro está aqui(eu acho)
        //Faz a conexão com o BD
        DataContext DB = new DataContext(@"********************");
        //Cria uma varialvel chamando a tabela.
        Table<ConexaoParticipante> codParticipantes = DB.GetTable<ConexaoParticipante>();
        //Efetua o código SQl
        var cdPart = from cdParticipante in codParticipantes where cdParticipante = CampoCodigo select cdParticipante;//Aqui eu chamo a variável no código.


    }

Valeu!

 

Até mais!

 

;)

Share this post


Link to post
Share on other sites

O que tem neste valor: codigoASPxTextBox.Text.Trim ??

 

Abraços...

 

então a idéia é:

 

receber o valor do textBox(Que não pode ter espaço, por isso o trim)

 

e fazer um select a partir do valor digitado no campo do textBox.

 

Posta o erro e a linha do erro!

 

Abraço...

 

então...

 

o erro é porque eu não estou conseguindo pegar o valor que será digitado no campo do TextBox e jogar no select da variavel.

 

var cdPart = from cdParticipante in codParticipantes where cdParticipante = VALOR_DO_TextBox select cdParticipante; //Aqui eu chamo a variável no código.

Share this post


Link to post
Share on other sites

Nops....

 

dentro de uma tabela simples.

 

eu ainda não sei como vou fazer...

 

pensei coletar essa informação e jogar dentro de uma classe... mas eu n sei fazer isso direito, estou esdudando sobre isso.

 

Se alguem puder me ajuda, será de ótima ajuda. =)

Share this post


Link to post
Share on other sites

Então... simplifiquei o erro ao máximo. Agora é apenas um motivo.

 

 

Criei um método em C# dentro de uma classe.

 


public List<BuscaEAddClass> ListarDoSqlServerPorCodigo(int Codigo)
    {
        List<BuscaEAddClass> lista = new List<BuscaEAddClass>();
        //aqui vai o código em ADO.NET
        SqlCommand comando = new SqlCommand();
        comando.Connection = GetConnection();
        comando.CommandType = System.Data.CommandType.Text;
        comando.CommandText = "SELECT tb_Participante.cdParticipante as 'Codigo', tb_Participante.nmParticipante as 'Nome', tb_Usuario.dsEmail as 'E-Mail' FROM tb_Participante join tb_Usuario on tb_Participante.cdUsuario = tb_Usuario.cdUsuario WHERE tb_Participante.cdParticipante = @CodigoUsuario";
        comando.Parameters.AddWithValue("@CodigoUsuario", Codigo);
        //obter o retorno com a classe SqlDataReader
        SqlDataReader leitor = comando.ExecuteReader();
        //ler todas as linhas do leitor
         while (leitor.Read())
        {
            BuscaEAddClass a = new BuscaEAddClass();
            a.CodigoParticipante = leitor["tb_Participante.cdParticipante"].ToString();
            a.Nome = leitor["tb_Participante.nmParticipante"].ToString();
            a.Email = leitor["tb_Usuario.dsEmail"].ToString();
            lista.Add(a);
        }
       
        return lista;
    }

E no evento do Button está isso aqui:


 protected void pesquisarButton_Click(object sender, EventArgs e)
    {
        BuscaEAddClass Classe = new BuscaEAddClass();
        
        if (!String.IsNullOrEmpty((string)codigoASPxTextBox.Text))
        {
            resultadoASPxGridView.DataSource = Classe.ListarDoSqlServerPorCodigo(Convert.ToInt32((string)codigoASPxTextBox.Text));
            textoResultadoASPxLabel.Text = "Concluído.";
        }
        else
        {
            textoResultadoASPxLabel.Text = "Desculpe, mas não foi possível efetuar a pesquisa.";
        }

    }

 

Porém, eu já sei o que está dando erro, mas não sei como solucionar.

O erro está bem aqui:

 

while (leitor.Read())
        {
            BuscaEAddClass a = new BuscaEAddClass();
            a.CodigoParticipante = leitor["tb_Participante.cdParticipante"].ToString();
            a.Nome = leitor["tb_Participante.nmParticipante"].ToString();
            a.Email = leitor["Tb_Usuario.dsEmail"].ToString();
            lista.Add(a);
        }

ele não consegue reconhecer a coluna da tabela...

 

Vamo supor; se o objeto Nome pega a coluna nmParticipante da tabela tb_Participante, pronto, resolvido.

 

Mas ele não reconhece que isso está dentro do código SQl.

 

Como resolvo isso?

 

Grande abss...

Share this post


Link to post
Share on other sites

O correto não é passar: tb_Participante.cdParticipante e sim o Alias que você colocou la no seu sql.

 

Abraços...

 

Então... a coluna....

 

ja fiz isso.... mas ele não joga pra tabela.

 

n acontece nada...

Share this post


Link to post
Share on other sites

Reformulando...

 

Ele consegue ler tudo certo, mas quando ele tenta jogar pro CodigoUsuario, Nome e Email não vai.

 

Porque isso?

 

Como faço pra solucionar?

 

eu dei uma mudada no codigo agora os valores não são mais nulos...

 

Evento do Button:

protected void pesquisarButton_Click(object sender, EventArgs e)
    {
        BuscaEAddClass Classe = new BuscaEAddClass();
        resultGridView.DataSource = Classe.ListarDoSqlServerPorCodigo(Convert.ToInt32((string)codigoASPxTextBox.Text));
        
        if (!String.IsNullOrEmpty(Classe.Codigo) || !String.IsNullOrEmpty(Classe.Nome) || !String.IsNullOrEmpty(Classe.Email))
        {
                      
            textoResultadoASPxLabel.Text = "Concluído.";
        }
        else
        {
            textoResultadoASPxLabel.Text = "Desculpe, mas não foi possível efetuar a pesquisa.";
        }

    }

Método na classe:

public List<BuscaEAddClass> ListarDoSqlServerPorCodigo(int CodigoIN)
    {
        List<BuscaEAddClass> lista = new List<BuscaEAddClass>();
        //aqui vai o código em ADO.NET
        SqlCommand comando = new SqlCommand();
        comando.Connection = GetConnection();
        comando.CommandType = System.Data.CommandType.Text;
        comando.CommandText = "SELECT tb_Participante.cdParticipante as 'Codigo', tb_Participante.nmParticipante as 'Nome', tb_Usuario.dsEmail as 'E-Mail' FROM tb_Participante join tb_Usuario on tb_Participante.cdUsuario = tb_Usuario.cdUsuario WHERE tb_Participante.cdParticipante = @CodigoUsuario";
        comando.Parameters.AddWithValue("@CodigoUsuario", CodigoIN);
        //obter o retorno com a classe SqlDataReader
        SqlDataReader leitor = comando.ExecuteReader();
        leitor.Read();
        Codigo = leitor["Codigo"].ToString();
        Nome = leitor["Nome"].ToString();
        Email = leitor["E-Mail"].ToString();
        return lista;
    }

 

 

Porém ainda não aparece no GridView.

 

Eu acho que não estou sabendo colocar as info no GridView

Share this post


Link to post
Share on other sites

Primeiro tem que decidir o que quer. Quer alimentar textbox, alimentar gridview? O que esta tentando fazer? Cada hora você fala uma coisa.

 

Abraços...

 

hahaha... :lol:

 

não... você não entendeu, a parte do textbox eu ja resolvi... o problema ta na hora de alimentar o GridView.

No caso do text era de que ele precisava colocar um valor e baseado nesse valor fazia a busca no sql, mas isso eu ja consegui. ;)

Eu olhei parte por parte do debugger, tá tudo certo, o problema está na hora que era pra mostrar no GridView que eu não estou conseguindo.

 

O que eu estou tentando fazer é uma pesquisa no SQL e mostra no GridView.

Share this post


Link to post
Share on other sites

Se o código que alimenta a grid for esse:

 

BuscaEAddClass Classe = new BuscaEAddClass();
resultGridView.DataSource = Classe.ListarDoSqlServerPorCodigo(Convert.ToInt32((string)codigoASPxTextBox.Text));

Falta apenas o DataBind.

resultGridView.DataBind();

Abraços...

Share this post


Link to post
Share on other sites

Olha... que bacana....

 

as colunas aparecerão, porém onde era pra mostrar os valores ta escrito "No data to dilplay".

 

e ao mesmo tempo eu estou falando que os resultados terão que aparece em alguns labels e nos labels aparecem...

 

graçado... :D

 

esqueci mais de alguma coisa?

Share this post


Link to post
Share on other sites

Pessoal da uma ajuda Rápida.

Ta dando um erro e não to enxergando onde estou errando...

 

quero fazer um select pelo DLINQ só que na hora de selecionar o TextBox.Text tá dando um erro no convert...

 

como resolvo isso?

 

Olhem o código:

 

    protected void pesquisarButton_Click(object sender, EventArgs e)
    {
        string CampoCodigo = Convert.ToInt32(codigoASPxTextBox.Text.Trim); //O erro está aqui(eu acho)
        //Faz a conexão com o BD
        DataContext DB = new DataContext(@"********************");
        //Cria uma varialvel chamando a tabela.
        Table<ConexaoParticipante> codParticipantes = DB.GetTable<ConexaoParticipante>();
        //Efetua o código SQl
        var cdPart = from cdParticipante in codParticipantes where cdParticipante = CampoCodigo select cdParticipante;//Aqui eu chamo a variável no código.


    }

Valeu!

 

Até mais!

 

;)

 

Olá, Massa Urbana.

 

Seguinte, percebi 2 coisas no seu código que realmente vão te gerar erro.

 

Na linha abaixo:

 

string CampoCodigo = Convert.ToInt32(codigoASPxTextBox.Text.Trim); //O erro está aqui(eu acho)

 

1º Você tem que estar certo de que neste "cara" "codigoASPxTextBox.Text.Trim" sempre será inserido um inteiro.

 

2º Se a primeira condição for satisfeita um outro erro será gerado porque você está tentando jogar um inteiro em uma variável do tipo string.

 

Então, segue a dica.

 

;)

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.