Ir para conteúdo

Arquivado

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

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!

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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. =)

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

;)

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.