Usuário com melhor resposta
Erro ao chamar método.

Pergunta
-
Ola Pessoal,
estou desenvolvendo uma nova aplicação e me deparei com a seguinte situação : criei uma classe que possuí 2 métodos : Preenche_Combobox e Retorna_DataReader. Gostaria de chamar o retorna_datareader no metodo Preenche_combobox me retornando o datareader mas não dá certo. Alguém poderia me ajudar ?
public DataTable Preenche_Combobox (int banco, string sql, int tipo)
{
DbDataReader dr;
DataTable dt = new DataTable();
dr = Retorna_DataReader(banco, sql, tipo); // aqui está o erro o datareadere não consegue receber os dados do método chamado.
dt.Load(dr, LoadOption.Upsert);
return dt;
}public DbDataReader Retorna_DataReader (int banco, string sql, int tipo)
{
DbDataReader dr;
ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[banco];
if (settings != null)
{
try
{
DbProviderFactory factory = DbProviderFactories.GetFactory(settings.ProviderName);
DbConnection cn = factory.CreateConnection();
cn.ConnectionString = settings.ConnectionString;
DbCommand cm = factory.CreateCommand();
cm.Connection = cn;
switch (tipo)
{
case 0 :
cm.CommandType = CommandType.Text;
break;
case 1:
cm.CommandType = CommandType.StoredProcedure;
break;
case 2:
cm.CommandType = CommandType.TableDirect;
break;
}
cm.CommandText = sql;
cn.Open();
dr = cm.ExecuteReader();
return dr;
}
catch (Exception ex)
{
throw new Exception("Erro: " + ex.Message);
}
}
else
{
throw new Exception("Erro ao acessar o Banco de Dados. \nPor favor tente novamente.");
}
}
Michele Teixeira
Respostas
-
Olá Rogério!
Acabei de achar o que era.. faltou definir o DisplayMember do combobox.
de qq maneira obrigada pela ajuda..
Michele Teixeira- Marcado como Resposta Michele Teixeira quarta-feira, 10 de novembro de 2010 19:15
Todas as Respostas
-
Michele,
Qual seria o erro que esta acontecendo?
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
Olá Rogério,
Na verdade nenhuma mensagem de erro é emitida apenas o datareader não é preenchido na linha dr = Retorna_DataReader(banco, sql, tipo); Mas se consulto o método Retorna_DataReader o datareader dele foi preenchido corretamente, apenas no retorno do método preenche_combobox não é preenchido.
public DataTable Preenche_Combobox (int banco, string sql, int tipo)
{
DbDataReader dr;
DataTable dt = new DataTable();
dr = Retorna_DataReader(banco, sql, tipo); // aqui está o erro o datareadere não consegue receber os dados do método chamado.
dt.Load(dr, LoadOption.Upsert);
return dt;
}Grata,
Michele Teixeira -
Oi Michele,
Pelo que estou vendo o código está certo, não tem motivo para o dr estar ficando nulo a não ser que alguma exceção estiver sendo gerada. Você tentou debugar para ver o que está acontecendo?
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
Olá Rogério!
Acabei de achar o que era.. faltou definir o DisplayMember do combobox.
de qq maneira obrigada pela ajuda..
Michele Teixeira- Marcado como Resposta Michele Teixeira quarta-feira, 10 de novembro de 2010 19:15