C# consulta SQL gravar em variável - Dois parametros

2 respostas Resolvido
anderson_ans

Boa tarde,

Seria possível executar uma consulta SQL e guardar o resultado de dois parametros em variaveis?

Por exemplo:
“Select id, nome from clientes”
Queria guardar o id em uma variavel e nome em outra…

Guardar o resultado todo em uma variavel ate consigo, agora quanto sao dois resultados nao consigo, um só fiz assim:

public int numRegistro()

{

bd.conectar();

int id = 1;

string comandoSql = Select codigo from clientes;

MySqlDataReader reader = bd.retornarDataReader(comandoSql);
if (reader.HasRows)
        {
            id = reader.GetInt32(0);
        }
        bd.desconectar();
        return id;
    }

alguem poderia ajudar a guardar dois resultados em duas variaveis diferentes? Origado mais uma vez

2 Respostas

TerraSkilll
Solucao aceita

Os índices nos métodos Get (GetInt32, GetString) se referem à coluna a ser retornada em relação ao select. Assim, se a segunda coluna é String, você pode usar o GetString nesse segundo índice. Algo como:

bd.conectar();
int id = 1;
string nome = "";
string comandoSql = Select codigo, nome from clientes; // acrescentada coluna nome
MySqlDataReader reader = bd.retornarDataReader(comandoSql);

if (reader.HasRows) {
  id = reader.GetInt32(0); // coluna de indice zero é o codigo
  nome = reader.GetString(1); // coluna de indice 1 é o nome
}
bd.desconectar();

Obviamente, seu método não pode mais simplesmente retornar o id, já que você quer o nome também. Então seria o caso de você criar uma classe com nome e código e retornar uma instância dessa classe nesse método.

Você também pode pegar as colunas pelo nome em vez do índice, o que pode deixar o código mais legível. Algo como:

id = Convert.ToInt32(reader["codigo"]);
  nome = reader["nome"].ToString();

Referência: https://stackoverflow.com/questions/42561560/accessing-rows-using-mysqldatareader

Abraço.

anderson_ans

Obrigado TerraSkilll, perfeito! criei a classe inclui nome e codigo, instanciei salvou corretamente obrigdo

Criado 15 de setembro de 2020
Ultima resposta 15 de set. de 2020
Respostas 2
Participantes 2