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