Sobrecarga de método para preencher um DataGrid ...
17/08/2010
0
criei o seguinte método no formulário base:
------------------------------------------------
public virtual void carregarDados()
{
}
private void btn_salvar_Click(object sender, EventArgs e)
{
salvar();
carregaDados();
}
------------------------------------------------
na classe de acesso ao banco de dados tenho um método para retornar um dataset da seguinte forma:
------------------------------------------------
public DataSet RetorarDS(string strQuery)
{
SqlConnection cn = new SqlConnection();
try
{
cn = AbrirBanco();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = strQuery.ToString();
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
FecharBanco(cn);
}
}
--------------------------------------------------
no formulário herdado, na sobrecarga do método:
--------------------------------------------------
public override void carregaDados()
{
string csql = "SELECT * FROM tipo_funcionario";
clsDados dados = new clsDados();
DataSet ds = dados.RetorarDS(csql);
dgvDados.DataSource = ds.Tables[0];
dgvDados.Refresh();
}
---------------------------------------------------
resumindo, qndo a aplicaçao é compilada (sem acusar erros), qndo tento abrir o formulário tá aparecendo a seguinte informação:
detalhe se coloco no load do form funciona... mas não atualiza o grid...
------------------------------------------------
public virtual void carregarDados()
{
}
private void btn_salvar_Click(object sender, EventArgs e)
{
salvar();
carregaDados();
}
------------------------------------------------
na classe de acesso ao banco de dados tenho um método para retornar um dataset da seguinte forma:
------------------------------------------------
public DataSet RetorarDS(string strQuery)
{
SqlConnection cn = new SqlConnection();
try
{
cn = AbrirBanco();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = strQuery.ToString();
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
FecharBanco(cn);
}
}
--------------------------------------------------
no formulário herdado, na sobrecarga do método:
--------------------------------------------------
public override void carregaDados()
{
string csql = "SELECT * FROM tipo_funcionario";
clsDados dados = new clsDados();
DataSet ds = dados.RetorarDS(csql);
dgvDados.DataSource = ds.Tables[0];
dgvDados.Refresh();
}
---------------------------------------------------
resumindo, qndo a aplicaçao é compilada (sem acusar erros), qndo tento abrir o formulário tá aparecendo a seguinte informação:
detalhe se coloco no load do form funciona... mas não atualiza o grid...
Allan Roberto
Curtir tópico
+ 0
Responder
Posts
17/08/2010
Allan Roberto
galera resolvi parcialmente. parece que para carregar do datagrid eu não posso usar a sobrecarga do método preciso criar outro... se alguém conseguir através da sobrecarga ... post por favor...
valeu
valeu
Responder
22/08/2010
Tiago Melo
Alan seguinte, vc fez uma confusão um tanto quanto natural ai, você não está utilizando recurso de sobrecarga de metodos ai, a sua idéai esta mais próxima do polimorfismo. veja quando vc declara o metodo no seu form base vc faz da seguinte maneira: public virtual void carregarDados(), isso deixa claro a sua intenção de fazer uso de polimorfismo, ou seja nas classes que herdarem vc quer alterar a maneira como o metodo trabalha, e não fazer sobrecarga. a sobrecarga de metodos serve para vc utilizar um metodo com o mesmo nome, porém com assinatura diferente como por exemplo:
public overload void carregarDados();
public overload void carregarDados(integer Id);
public overload void carregarDados(integer Id, string nome);
Responder
Clique aqui para fazer login e interagir na Comunidade :)