Passar Dados Entre Formulários [C Sharp - Visual Studio]
29/04/2019
0
Sou desenvolvedor a algum tempo em outra linguagem e estou tendo problemas para entender algumas coisas da linguagem C# e como ela funciona, estou desenvolvendo no Visual Studio 2017 com banco de dados MySQL e nessa dúvida fiz uma consulta contendo a empresa cadastrada e ao clicar no botão Editar Dados, gostaria que carregasse os dados no FORM de cadastro para o usuário ALTERAR e gravar, o problema não é INCLUIR/ALTERAR é carregar os dados do DATAGRIDVIEW para a outra tela nos TEXTBOXs, tenho uma classe clssUtil onde contém um get/set da empresa, podem me dar idéias?
Percebi que os componente TextBox vem no modo PRIVATE e se alterar para PUBLIC consigo referenciar ele no outro FORM mas não gostaria de mudar isso.
Alguém pode ajudar?
"Se você se irrita com os críticos, você pode ter certeza de que quase sempre eles estão certos".
// == By Stephen King == //
Anderson Gonçalves
Post mais votado
29/04/2019
Código no evento SelectionChanged do DataGridView:
string id = DataGridView.CurrentRow.Cells[0].Value.ToString(); // Supondo que o campo id da empresa seja a primeira coluna
com a variável id você vai consulta o banco de dados por uma empresa com este id, e se retornar resultados vai preencher as propriedades do objeto empresaAtual.
dando continuidade ao código do evento SelectionChanged do DataGridView:
string sql = "select * from empresas where id ="+id;
using (MySqlCommand command = new MySqlCommand(sql, conn)) // troque conn pela conexão ao mysql que você já criou
{
conn.Open();
using (MySqlDataReader dr = command.ExecuteReader())
{
while (dr.Read()) {
empresaAtual .ID = (int)dr["id"];
empresaAtual .Nome = (String) dr["Nome"];
// vai preenchendo as outras propriedades do objeto empresaAtual
}
}
}
em seguida adicione o código para preencher o formulário com as propriedade do objeto empresaAtual.
Renato Dias
Mais Posts
29/04/2019
Anderson Gonçalves
Se estiver certo e for melhor a minha ideia me diga ai Sr. Renato, preciso fazer o que for melhor e não mais fácil.
Obrigado mais uma vez.
29/04/2019
Ramiro Porto
Boa noite. Existe inúmeras maneiras de passar valores entre forms.. Lembre-se que form em C# é uma classe.
vc pode usar propriedade publica do seu form, passar via construtor do form , usar uma classe estática global e etc..
Eu prefiro passar no contrutor.. segue exemplo
public partial class frmCadastro : Form
{
public frmCadastro()
{
InitializeComponent();
}
//sobre carga do construtor
public frmCadastro(EmpresaDto empresa)
{
InitializeComponent();
this.mEmpresa = empresa;
}
// sua classe empresa
EmpresaDto mEmpresa;
void FrmCadastroLoad(object sender, EventArgs e)
{
if(mEmpresa!=null){
carregarControles();
}
}
void carregarControles(){
//aqui vc preenche seus controles
}
}
29/04/2019
Anderson Gonçalves
Valeu a todos que ajudaram.
Abraço forte.
Clique aqui para fazer login e interagir na Comunidade :)