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: