none
"Object reference not set to an instance of an object." RRS feed

  • Pergunta

  • Eu estou desenvolvendo um windows forms aplication junto com banco
    MySql e, durante o desenvolvimento da camada de dados me deparei com
    alguns problemas:
    1- Estou desenvolvendo um form para consulta de pessoa e durante a
    execução do seguinte cod:

    public DataTable consultarPessoa(string filtro, int verificador)
    {
    ass.criarConexao();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    string sql = "SELECT * FROM pessoa";
    MySqlDataAdapter da = new MySqlDataAdapter();
    try
    {
    MySqlParameter pFiltro;
    switch (verificador)
    {
    case 0:
    sql += "WHERE NomPessoa LIKE @filtro";
    pFiltro = da.SelectCommand.Parameters.
    AddWithValue("@filtro", filtro);
    break;
    case 1:
    sql += "WHERE CodPessoa LIKE @filtro";
    pFiltro = da.SelectCommand.Parameters.AddWithValue("@filtro",
    Convert.ToInt32(filtro));
    break;
    case 2:
    sql += "WHERE CpfPessoa LIKE @filtro";
    pFiltro = da.SelectCommand.Parameters.AddWithValue("@filtro", filtro);
    break;
    case 4:
    sql += "WHERE DataNascimentoPessoa LIKE @filtro";
    pFiltro = da.SelectCommand.Parameters.AddWithValue("@filtro",
    Convert.ToDateTime(filtro));
    break;
    }
    da.SelectCommand = new MySqlCommand();
    da.SelectCommand.CommandText = sql;
    da.SelectCommand.CommandType = CommandType.Text;
    da.Fill(ds, "pessoa");
    dt = ds.Tables["pessoa"];
    return dt;
    }

    e estou tendo como retorno o seguinte erro:

    "Object reference not set to an instance of an object."

    Quando estou debugando o codigo, eu percebo que por alguma razão o
    SelectCommand fica vazio, mesmo eu informando que o mesmo recebe a
    string sql (que contém o comando sql).

    Outro problema é que quando eu tento executar pelo MySqlCommand e em
    seguida o ExecuteReader() os filtros que seto não funcionam. Gostaria
    de saber se alguém pode me ajudar com esse problema.
    segunda-feira, 30 de maio de 2011 02:11

Respostas

Todas as Respostas