Anda di halaman 1dari 4

Crie um projeto e inclua no mesmo as tabelas Empresas e Contato, conforme imagem abaixo:

Relacione EmpresaID da tabela Empresas com EmpresaID da tabela Contato. Crie um DataSet e inclua as duas tabelas. Volte ao Form1 e inclua no mesmo 1 ListBox, 3 Labels, 2 TextBox e 1 ComboBox, conforme imagem abaixo: Mude a propriedade Name dos controles da seguinte maneira: - txtNome - txtEmpresa - cmbEmpresa

Mude o endereo em app.config. Inclua alguns valores nas tabelas Empresas e Contato. Voc perceber que, se tentar incluir valor na tabela Contato primeiro que em Empresas ir acusar erro, pois temos uma chave estrangeira EmpresaID na tabela Contato. Ou seja, como relacionamos EmpresaID da tabela Empresas com EmpresaID da tabela Contato no podemos ter um contato sem que esteja ligado a uma empresa cadastrada.

Adicione o seguinte mtodo para carregar o listBox1:


private void CarregarContatos() {

DataSet1TableAdapters.ContatoTableAdapter da=new DataSet1TableAdapters.ContatoTableAdapter();

listBox1.DataSource = da.GetData(); listBox1.DisplayMember = "Nome"; listBox1.ValueMember = "ContatoID"; }

Inclua no final do mtodo Form1_Load o seguinte comando que carrega o mtodo acima, atualizando o listBox1 com os contatos cadastrados:
CarregarContatos();

Vamos incluir agora uma consulta que retorna o cdigo e o Nome da empresa no comboBox: Inicialmente adicione uma Query em Empresas; Deixe marcada a opo Use SQL Statements --> SELECT wich return rows; Mantenha o cdigo criado automaticamente: SELECT EmpresaID, Nome, Tipo FROM dbo.Empresas Desmarque a opo Fill a DataTable e mude o nome do mtodo Return a DataTable para GetDataForLists, em seguida clique em Finish. Inclua o seguinte mtodo que ir carregar o cmbEmpresa, ele simplesmente preenche o comboBox e atribui o valor do ID para cada seleo:
private void CarregaEmpresas() { cmbEmpresa.Items.Clear();
DataSet1TableAdapters.EmpresasTableAdapter da=new DataSet1TableAdapters.EmpresasTableAdapter( );

cmbEmpresa.DataSource = da.GetDataForLists(); cmbEmpresa.DisplayMember = "Nome"; cmbEmpresa.ValueMember = "EmpresaID"; }

Inclua no final do mtodo Form1_Load o seguinte comando que carrega o mtodo acima:
CarregaEmpresas();

Inclua agora o seguinte mtodo que recebe o ID da empresa onde o contato trabalha e

private void Form1_Load(object sender, EventArgs e) { CarregarContatos(); CarregaEmpresas(); }

private void CarregarContatos() { DataSet1TableAdapters.ContatoTableAdapter da = new DataSet1TableAdapter s.ContatoTableAdapter(); listBox1.DataSource = da.GetData(); listBox1.DisplayMember = "Nome"; listBox1.ValueMember = "ContatoID"; }

Preenche o ListBox com os contatos cadastrados, mostrando seus Nomes e atribuindo a eles seus valores ( ContatoID )

private void CarregaEmpresas() { cmbEmpresa.Items.Clear(); DataSet1TableAdapters.EmpresasTableAdapter da = new DataSet1TableAdapter s.EmpresasTableAdapter(); Preenche o ComboBox com cmbEmpresa.DataSource = da.GetDataForLists(); as empresas cadastradas e cmbEmpresa.DisplayMember = "Nome"; cmbEmpresa.ValueMember = "EmpresaID"; mostrando seus Nomes e } atribuindo a ele seus valores

(EmpresaID)
private void CarregaContato(int ContatoID) { SqlConnection conn=new SqlConnection(EntidadeRelacionamento.Properties.Se ttings.Default["Database1ConnectionString"].ToString()); SqlCommand cmd = new SqlCommand("SELECT * FROM Contato WHERE ContatoID = " + ContatoID, conn); SqlDataReader dr; conn.Open(); dr = cmd.ExecuteReader(); if (dr.HasRows) { dr.Read(); cmbEmpresa.SelectedValue = dr["EmpresaID"].ToString(); } conn.Close(); }

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { if (listBox1.SelectedValue.ToString() != "System.Data.DataRowView") CarregaContato((int)listBox1.SelectedValue); }