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

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

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.

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