O código que desenvolvi só busca no banco a última linha da tabela do banco (tb_livro2018), gostaria de fazer uma busca por nome (combobox) e jogar o resultado (as datas que contém o nome selecionado) em uma listbox, incluindo os resultados com o mesmo nome/data. Por exemplo, se eu selecionar na combobox o nome 1º Ten Almeida, quero que todas as vezes que for encontrado no banco o nome 1º Ten Almeida, vá para a listbox as datas que este nome usou o livro. O problema é que só está pegando os dados (nome ou data) apenas uma vez. Do modo que vou mostrar em seguida, só está puxando apenas uma informação salva no banco:
//PRECISO QUE EU ESCOLHA O NOME E APAREÇA NA LISTBOX TODAS AS DATAS EM QUE ESTA PESSOA USOU O LIVRO
namespace Livro_de_Partes
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
OperacaoBanco operacao = new OperacaoBanco();
MySqlDataReader dados;
private void Form2_Load(object sender, EventArgs e)
{
//INSERINDO DADOS NOS COMBOBOX
addOfDia();
}
//MÉTODOS
public void addOfDia()
{
cmb_nomeOfDia.Items.AddRange(new object[] {
"1º Ten Almeida",
"1º Ten Coimbra",
"1º Ten Braga",
});
}
private void cmb_nomeOfDia_SelectedIndexChanged(object sender, EventArgs e)
{
lst_resultado.Items.Clear();
btn_visualizar.Visible = true;
btn_visualizar.Enabled = true;
String nomeOfDia = "", ocorrenciaObtida = "", nomeOfDiaObtido = "", dataObtida = "";
nomeOfDia = cmb_nomeOfDia.SelectedItem.ToString();
try
{
dados = operacao.Select("SELECT cd_livro, nm_ofdia, ds_ocorrencia, dt_servico FROM tb_livro2018 WHERE nm_ofdia = '"+ nomeOfDia +"' ");
if (dados.HasRows)
{
while (dados.Read())
{
nomeOfDiaObtido = Convert.ToString(dados[1]);
ocorrenciaObtida = Convert.ToString(dados[2]);
dataObtida = Convert.ToString(dados[3]).Remove(10, 9);
}
}
if(nomeOfDiaObtido != nomeOfDia)
{
MessageBox.Show("Este oficial não possui serviço registrado!");
}
else
{
lst_resultado.Items.Add(dataObtida);
txt_ocorrencias.Text = ocorrenciaObtida;
}
}
catch (Exception erro)
{
MessageBox.Show("Erro: " + erro);
}
finally
{
Connection.fecharConexao();
}
}
///////////////////////////////////////////////////CLASSE OPERACAOBANCO////////////////////////////
class OperacaoBanco
{
private MySqlCommand TemplateMethod(String query)
{
MySqlConnection Conexao = Connection.getConexao();
MySqlCommand Comando = new MySqlCommand(query, Conexao);
try
{
Comando.ExecuteNonQuery();
return Comando;
}
catch
{
return Comando;
}
}
public MySqlDataReader Select(String query)
{
MySqlDataReader dadosObtidos = TemplateMethod(query).ExecuteReader();
return dadosObtidos;
}
public Boolean Insert(String query)
{
MySqlConnection Conexao = Connection.getConexao();
MySqlCommand Comando = new MySqlCommand(query, Conexao);
try
{
Comando.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
}
public Boolean Update(String query)
{
MySqlConnection Conexao = Connection.getConexao();
MySqlCommand Comando = new MySqlCommand(query, Conexao);
try
{
Comando.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
}
public Boolean Delete(String query)
{
MySqlConnection Conexao = Connection.getConexao();
MySqlCommand Comando = new MySqlCommand(query, Conexao);
try
{
Comando.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
}
}