Guardar pesquisa em uma variável em Csharp com banco MySQL?

Estou programando em C#, tenho vários comandos de busca no SQL com MySQLConnection

Pergunto:

É possível guardar o resultado de uma pesquisa em uma variável?

Sim claro, você pode guarda em Lista Genéricas ou Tipadas exemplo

Classe modelo

public class Funcionario
{
    public int Id {get;set;}
    public string Nome {get;set;}
}

Uma coleção de funcionarios, que podem ser dados trazidos do banco:

List<Funcionario> listaDeFuncionarios = new List<Funcionario>();

ou seja, uma variável com os resultados seria listaDeFuncionarios.

Mas, por exemplo, eu no meu programa eu tenho uma pesquisa do tipo.

"SELECT nomes FROM vendas WHERE codvenda = 1" 

esse resultado eu queria guardar em uma string nome; é possível?

Se for um nome somente seria assim, inclusive com ajustes na SQL para banco MySQL:

string nome = string.Empty;

MySqlConnection con = new MySqlConnection();
MySqlCommand command = new MySqlCommand("SELECT nome FROM alunos where id = 1", con);
MySqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
	if (reader.Read())
	{
		nome = reader.GetString("nome");
	}
}

//1 nome carregados do banco
nome

Se for uma lista de nomes seria assim:

List<string> nomes = new List<string>();

MySqlConnection con = new MySqlConnection();
MySqlCommand command = new MySqlCommand("SELECT nome FROM alunos", con);
MySqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
	while (reader.Read())
	{
		nomes.Add(reader.GetString("nome"));
	}
}

//lista de nomes carregados do banco
nomes...

Se for uma lista de valores seria assim:

public class Aluno
{
	public int Id { get; set; }
	public string Nome { get; set; }
}

List<Aluno> alunos = new List<Aluno>();

MySqlConnection con = new MySqlConnection();
MySqlCommand command = new MySqlCommand("SELECT id, nome FROM alunos", con);
MySqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
	while (reader.Read())
	{
		alunos.Add(new Aluno
		{
			Id = reader.GetInt32("id"), 
			Nome = reader.GetString("nome")
		});
	}
}

//lista de alunos carregados do banco
alunos ...

Então vai depender do retorno da sua SQL se ela vai trazer 1 registro ou vários registros e também verificando se trará mais que uma coluna!

1 curtida

Perfeito!! Me ajudou mto! Obrigado .

1 curtida