none
Carregar valores do banco para variaveis RRS feed

  • Pergunta

  • Bom não deve ser complicado de fazer mas não tenho muita experiencia com C#.

    Eu possuo o seguinte código mas na hora que eu vou mostrar nos labels esses valores
    ele só está pegando o da primeira linha. Gostaria de saber se tem como eu definir
    qual a linha ele vai ler?

    public void Rank(string tabela) { comando = new SqlCommand("SELECT TOP(5) Nome, Ano, Pontuacao FROM Jogador

    WHERE Tabela = @Tabela ORDER BY Pontuacao DESC"); comando.Parameters.AddWithValue("@Tabela", tabela); comando.Connection = conexao; AbrirConexao(); leitor = comando.ExecuteReader(); leitor.Read(); Pontos.n1 = leitor["Nome"].ToString(); Pontos.a1 = leitor["Ano"].ToString(); Pontos.p1 = Convert.ToInt16(leitor["Pontuacao"]); Pontos.n2 = leitor["Nome"].ToString(); Pontos.a2 = leitor["Ano"].ToString(); Pontos.p2 = Convert.ToInt16(leitor["Pontuacao"]); Pontos.n3 = leitor["Nome"].ToString(); Pontos.a3 = leitor["Ano"].ToString(); Pontos.p3 = Convert.ToInt16(leitor["Pontuacao"]); Pontos.n4 = leitor["Nome"].ToString(); Pontos.a4 = leitor["Ano"].ToString(); Pontos.p4 = Convert.ToInt16(leitor["Pontuacao"]); Pontos.n5 = leitor["Nome"].ToString(); Pontos.a5 = leitor["Ano"].ToString(); Pontos.p5 = Convert.ToInt16(leitor["Pontuacao"]); FecharConexao(); }

    GRATO.

    sexta-feira, 10 de maio de 2013 01:08

Respostas

  • Anderson,

    Acredito que você terá que utilizar um laço de repetição no seu código. Por exemplo, um while. Mais ou menos assim:

    while(leitor.Read())
    {
        switch(contador)
        {
            case 1:
            {
                Pontos.n1 = leitor["Nome"].ToString();
                Pontos.a1 = leitor["Ano"].ToString();
                Pontos.p1 = Convert.ToInt16(leitor["Pontuacao"]); 
            }
            case 2:
            {
                Pontos.n2 = leitor["Nome"].ToString();
                Pontos.a2 = leitor["Ano"].ToString();
                Pontos.p2 = Convert.ToInt16(leitor["Pontuacao"]); 
            }
            ...
        }
        contador += 1;    
    }

    Att.


    Fabio Rosa.

    • Marcado como Resposta AndersonShort sexta-feira, 10 de maio de 2013 16:16
    sexta-feira, 10 de maio de 2013 11:38

Todas as Respostas

  • Anderson,

    Acredito que você terá que utilizar um laço de repetição no seu código. Por exemplo, um while. Mais ou menos assim:

    while(leitor.Read())
    {
        switch(contador)
        {
            case 1:
            {
                Pontos.n1 = leitor["Nome"].ToString();
                Pontos.a1 = leitor["Ano"].ToString();
                Pontos.p1 = Convert.ToInt16(leitor["Pontuacao"]); 
            }
            case 2:
            {
                Pontos.n2 = leitor["Nome"].ToString();
                Pontos.a2 = leitor["Ano"].ToString();
                Pontos.p2 = Convert.ToInt16(leitor["Pontuacao"]); 
            }
            ...
        }
        contador += 1;    
    }

    Att.


    Fabio Rosa.

    • Marcado como Resposta AndersonShort sexta-feira, 10 de maio de 2013 16:16
    sexta-feira, 10 de maio de 2013 11:38
  • Cara perfeito, era isso mesmo a unica coisa que tive que mudar é que ele começa com o case 0: pq se não ela não pega o primeiro colocado.

    Muitíssimo obrigado.

    sexta-feira, 10 de maio de 2013 16:16
  • Ahh sim verdade....

    Desculpe o engano... (vício de outra linguagem que inicia os vetores em 1 e não 0...rsrs)....

    Att.


    Fabio Rosa.

    sexta-feira, 10 de maio de 2013 17:54