C# - Acesso SQL Server - Navegação Mestre-Detalhes
Programar se aprende programando, certo ? |
E nada melhor para aprender do que ter um protótipo funcional com o código fonte a partir do qual podemos estudar.
Este singelo projeto feito na linguagem C# realiza o acesso e as operações de inclusão, edição e exclusão em uma base de dados SQL Server.
Então vamos ao que interessa...
O projeto poderá ser aberto nos seguintes IDEs:
Além disso você deverá instalar os seguintes recursos:
O banco de dados SQL Server
A aplicação Acesso o banco de dados Northwind.mdf e permite efetuar uma navegação mestre-detalhes entre os clientes e seus pedidos.
Na figura abaixo temos o relacionamento entre as tabelas Customers e Orders que iremos usar para construir o relacionamento usando o objeto Relation:
A interface da aplicação
A seguir temos a interface da aplicação no formulário form1.cs que utiliza os seguintes controles:
O código da aplicação (partes principais)
No início do formulário temos a definição dos namespaces usados no projeto
using System;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
Note que estamos referenciando o namespace para acessar as classes ADO .NET para o SQL Server.
A string de conexão usada no programa é a seguinte:
//define a
string de conexão com o banco de dados Northwind
SqlConnection con = new SqlConnection("server=.\\SQLEXPRESS;
database=Northwind; integrated security=SSPI;");
Se você predente usar outro banco de dados basta alterar os nomes dessas variáveis conforme o provedor pertinente.
1 - Código do evento Load do formulário
private void Form1_Load(object sender, System.EventArgs e) { try { //define a string de conexão com o banco de dados Northwind SqlConnection con = new SqlConnection("server=.\\SQLEXPRESS; database=Northwind; integrated security=SSPI;"); //define dois adaptadores para clientes e para pedidos SqlDataAdapter daCust = new SqlDataAdapter("Select * from Customers", con); SqlDataAdapter daOrders = new SqlDataAdapter("Select * from Orders", con); DataSet ds = new DataSet(); //preenche cada um dos datasets daCust.Fill(ds, "Cust"); daOrders.Fill(ds, "Orders"); //defina o relacionamento entre as tabelas ds.Relations.Add("CustOrd", ds.Tables["Cust"].Columns["CustomerID"],ds.Tables["Orders"].Columns["CustomerID"]); // //Realiza a vinculação dos controles // textBox1.DataBindings.Add("Text", ds.Tables["Cust"], "CustomerID"); textBox2.DataBindings.Add("Text", ds.Tables["Cust"], "CompanyName"); textBox3.DataBindings.Add("Text", ds.Tables["Cust"], "ContactName"); // textBox4.DataBindings.Add("Text", ds.Tables["Cust"], "Address"); textBox5.DataBindings.Add("Text", ds.Tables["Cust"], "City"); textBox6.DataBindings.Add("Text", ds.Tables["Cust"], "Country"); /defina a fonte de dados dataGrid1.DataSource = ds.Tables["Cust"]; dataGrid1.DataMember = "CustOrd"; // //Inicializa o currencymanager // cm = (CurrencyManager)this.BindingContext[ds.Tables["Cust"]]; } catch (Exception ex) { MessageBox.Show("Erro ao acessar o banco de dados : " + ex.Message, "Erro acesso aos dados"); } } |
O código que permite navegar pelos registros exibindo os clientes e seus pedidos:
private void button1_Click(object sender, System.EventArgs e) { //primeiro registro if((cm!=null)&(cm.Count>0)) cm.Position=0; } private void button2_Click(object sender, System.EventArgs e) { //registro anterior if((cm!=null)&(cm.Count>0)&(cm.Position>0)) cm.Position -=1; } private void button3_Click(object sender, System.EventArgs e) { // proximo registro if((cm!=null) &(cm.Count>0)&(cm.Position<cm.Count-1)) cm.Position +=1; } private void button4_Click(object sender, System.EventArgs e) { //ultimo registro if((cm!=null)& (cm.Count>0)) cm.Position=cm.Count; } |
Executando o projeto iremos obter:
Uma aplicação simples mas que mostra como você pode realizar a navegação mestre-detalhes acessando um banco de dados SQL Server.
Pegue o projeto completo aqui: MestreDetalhes_CSharp.zip
Eu sei é apenas C# , mas eu gosto...
Adquirindo o Super CD .VB , o Super CD .NET ou o Super DVD .NET Você recebe também : 1- O projeto VB .NET completo do programa e 3 resumos PDF (DataSet,DataTable e DataView) 2- Um Curso básico de ADO .NET para a linguagem C# em PDF com 7 capítulos : veja aqui o conteúdo. |
Referências: