Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom Dia Pessoal, estou com uma duvida e creio que bem simples porém não estou conseguindo resolver.
estou começando a programar em C# e preciso carregar um Data Grid porém a função com a consulta no SQL Server esta em outra classe, Vejam abaixo meu codigo:
Abaixo a Função para Cadastrar uma Conta Corrente no Banco de dados:
public static void IncluirConta(String Conta, String ContaDig, String CodigoBanco, String Agencia, String NomeEmpresa, String TipoInscricao, String Inscricao, String ConvenioCedente, String EntregaDistribuicao, String Duplicata)
{
try
{
SqlCommand Comando = new SqlCommand();
Comando.Connection = Con;
Con.Open();
Comando.CommandText = "Insert Into Contas(Conta, ContaDig, CodigoBanco, Agencia, NomeEmpresa, TipoInscricao, Inscricao, ConvenioCedente, EntregaDistribuicao, Duplicata) Values (@Conta, @ContaDig, @CodigoBanco, @Agencia, @NomeEmpresa, @TipoInscricao, @Inscricao, @ConvenioCedente, @EntregaDistribuicao, @Duplicata)";
Comando.Parameters.AddWithValue("@Conta", Conta);
Comando.Parameters.AddWithValue("@ContaDig", ContaDig);
Comando.Parameters.AddWithValue("@CodigoBanco", CodigoBanco);
Comando.Parameters.AddWithValue("@Agencia", Agencia);
Comando.Parameters.AddWithValue("@NomeEmpresa", NomeEmpresa);
Comando.Parameters.AddWithValue("@TipoInscricao", TipoInscricao);
Comando.Parameters.AddWithValue("@Inscricao", Inscricao);
Comando.Parameters.AddWithValue("@ConvenioCedente", ConvenioCedente);
Comando.Parameters.AddWithValue("@EntregaDistribuicao", EntregaDistribuicao);
Comando.Parameters.AddWithValue("@Duplicata", Duplicata);
Comando.ExecuteNonQuery();
Con.Close();
MessageBox.Show("Conta Incluida Com Sucesso");
**Listar("Select * from Contas", FrmContas.DgvContas); // Aqui após a Mensagem de Conta incluida, eu faço a atualização do Datagrid, porém não consigo referenciar o Data Grid(DgvContas)**
}
catch (Exception e)
{
MessageBox.Show(e.Message);
Con.Close();
}
}>
Sim, a classe de acesso a dados fica em outra camada...
Tente retornar a lista atualizada.
Bom Diaitlpps ...
Como assim ??? poderia exemplificar ??
Valeu...
Ao invés de você atualizar o grid direto quando você atualiza a lista, primeiro atualize a lista e retorne a mesma pelo método que você chamou (que está em outra classe), depois no mesmo formulário aonde está o grid, utilize essa lista que você retornou para poder atualizar o elemento.
O correto mesmo, seria no evento do botão, você chamar dois métodos: Um que insere e outro que atualiza.
Deixando assim cada método com uma responsabilidade única.
Bom Dia Pessoal,
Fiz o Seguinte:
Defini o Data Grid como Public (para poder acessa-lo da classe onde estou inserindo a conta no banco de dados).
Agora após a mensagem de Conta incluida com sucesso, eu faço a atualização do Grid corretamente.
MessageBox.Show("Conta Incluida Com Sucesso");
FrmContas Contas = new FrmContas();
Listar("Select * from Contas", Contas.DgvContas);
Porém o Grid não atualiza.
Estou fazendo alguma coisa errada ??
Acredito que seja porque voce está inicializando um novo formulário de contas e não trabalhando com o existente.
Sim, a classe de acesso a dados fica em outra camada...
Tente retornar a lista atualizada.