0
The idea of the software is to select a name in the combobox (cmb_nameGu) and with this play in the listbox (lst_result) all found dates that contain the chosen name, to later click on existing dates to search for the last information, which is the summary of the occurrence (txt_occurrence). The problem happens when I try to click on a date in the listbox to search for the other information in the database from the selected date, and after that fill the text box (txt_occurrences) with the information found. The error that appears is: Undefined object reference for an instance of an object.
OperacaoBanco operacao = new OperacaoBanco();
MySqlDataReader dados;
private void lst_resultado_SelectedIndexChanged(object sender, EventArgs e)
{
if(cmb_nomeGu.Text != "")
{
try
{
string dataServico = "", ocorrenciaObtida = "";
dataServico = lst_resultado.SelectedItem.ToString();
//MessageBox.Show(dataServico);
dados = operacao.Select("SELECT ds_ocorrencia FROM tb_livro2018 WHERE dt_servico = '" + dataServico + "'");
grp_resumo.Visible = true;
while (dados.Read())
{
ocorrenciaObtida = Convert.ToString(dados[0]);
txt_ocorrencias.Text = ocorrenciaObtida;
}
}
catch (Exception erro)
{
MessageBox.Show("Não foi possível realizar a pesquisa \n Erro:" + erro);
}
finally
{
Connection.fecharConexao();
}
}
}
BELOW THE CLASSES FOR CONNECTION AND OPERATION IN THE BANK
CONNECTION
class Connection
{
public static MySqlConnection conexao = null;
private String stringconnection = "server=**********;User Id = ********; password=********;database=*************";
public void tentarAbrirConexaoLocal()
{
conexao = new MySqlConnection();
conexao.ConnectionString = stringconnection;
conexao.Open();
}
public Connection()
{
try
{
tentarAbrirConexaoLocal();
}
catch
{
Console.WriteLine("Não foi possível validar seu acesso.Tente novamente.");
}
}
public static MySqlConnection getConexao()
{
new Connection();
return conexao;
}
public static void fecharConexao()
{
conexao.Close();
}
}
OPERATION CLASS
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;
}
}
NullReferenceException
means that you are using an object that isnull
. What line of code this error occurs on ?– Isac
According to the exception returned, the error is on line 222. Is another thing treating the date correctly? I noticed that you are using Mysql, and dates are treated in this format
AAAA/MM/DD
.– Paulo Ricardo
I changed them, put everything in string and format dd/MM/yyyy
– Julio Cezar Almeida
line 222 refers to the code: 'dataServico = lst_result.SelectedItem.Tostring();'
– Julio Cezar Almeida
Selectedit Exchange for Selectedvalue or Selectedtext
– Rovann Linhalis
I tested with Selecteditem and Selectedvalue... with both the error to, but only search for the first information (txt_occurrence) of the first item in the list, even if I click on the others. In summary, the 'Summary' field is only filled with the 1st Index, regardless of the selected item.
– Julio Cezar Almeida
Looking better here.... it seems that all the dates listed in the listbox are as a single Indice...
– Julio Cezar Almeida
@I can’t really understand what you want to do. Your original question describes that you need to select data in the database with a listbox item. Reading your comments seems that there is another problem that is not at all clear (database error/logic of the language/form/other factor). May be more specific ?
– Henrique