Sei sulla pagina 1di 8

4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)

http://www.macoratti.net/14/03/c_csdf1.htm 1/8
C# Cadastro Bsico com SQL Server Local (SDF) I
Hoje vamos criar uma aplicao usando a linguagem C# para realizar o cadastro de Produtos usando o SQL Server Local ou SQL
Server Compact (SQL CE).
Ele um banco de dados enxuto e pequeno e fcil de distribuir que voc pode usar para aplicaes embarcadas, pequenas
aplicaes locais ou conectadas ocasionalmente.
O Microsoft SQL Server Compact (SQL CE) um banco de dados relacional
compacto produzido pela Microsoft para aplicativos que so executados em
dispositivos mveis e desktops. Antes da introduo da plataforma
desktop, ele era conhecido como SQL Server para Windows CE e SQL Server
Mobile Edition.
A ltima verso o SQL Server Compact 4.0 suportado na plataforma NET
Framework 4.0. Ele inclui tanto o suporte a 32bit como a 64bit, sendo
direcionado para aplicaes embutidas e aplicativos com um banco de
dados integrado. Ele gratuito para baixar e redistribuir. No existe um
ODBC para SQL CE mas voc pode usar o SQL CE via OLE DB.
Neste artigo vou mostrar como usar o SQL Server Local em uma aplicao onde iremos realizar as operaes CRUD para um
cadastro de Produtos.
Portanto neste artigo voc vai aprender a:
Incorporar um banco de dados Local em sua aplicao
Criar um banco de dados SQL Local
Criar Tabelas, campos e incluir dados no banco de dados
Adicionar, Excluir e Alterar dados no SQL Server Local
Recursos Usados:
Visual Studio 2012 Express for Windows Desktop
SQL Server Compact Edition 4.0 http://www.microsoft.com/enus/sqlserver/editions/2012editions/compact.aspx
Criando um Cadastro de Produtos com SQL Server Local
Abra o Visual Studio 2012 Express for Windows desktop e clique em New Project;
Escolha a linguagem Visual C# > Windows e a o template Windows Forms Application informando o nome
BancodeDadosLocal;
No formulrio padro form1.cs inclua a partir da ToolBox os seguintes controles:
5 Label
5 TextBox txtId, txtNome, txtEstoque, txtCusto e txtDescricao(Multiline=true)
5 Button btnLocalizar, btnIncluir, btnAlterar e btnExcluir
1 DataGridView dgvProdutos
Disponha os controles no formulrio conforme o leiaute abaixo:
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 2/8
Agora vamos criar um banco de dados chamado Vendas.sdf e uma tabela Produtos no SQL Server Local.
No menu PROJECT clique em Add New Item;
A seguir selecione a guia Data e clique no template Local DataBase, informe o nome Vendas.sdf e clique no boto Add;
Na prxima janela podemos escolher entre criar um DataSet ou um Entity Data Model. Podemos apenas clicar no boto Cancel
para apenas criar o banco de dados. Clique no boto Cancel, pois vamos apenas criar o banco de dados neste momento.
Agora na janela DataBase Explorer exibindo a conexo e os objetos do banco de dados Vendas.sdf.
Para criar a tabela Produtos clique com o boto direito sobre o banco de dados e a seguir em Create Table:
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 3/8
Na janela New Table vamos definir a tabela Produtos com os campos : Id , Nome, Estoque, Custo e Descricao conforme mostra
a figura abaixo:
Para concluir esta etapa vamos incluir alguns dados na tabela Produtos. Clique com o boto direito sobre a tabela e a seguir
em Show Table Data.
A seguir digite alguns dados a partir da coluna Nome conforme mostrado abaixo. (A coluna Id ser incrementada
automaticamente)
Realizando as operaes CRUD no SQL Server Local com ADO .NET
Vamos definir a string de conexo criada para o banco de dados Vendas.sdf no arquivo de configurao App.Config.
Para obter a string de conexo clique no banco de dados Vendas.sdf na janela DataBase Explorer e na janela de Properties
obtenha o seu valor na propriedade Connection String. A seguir abra o arquivo App.Config e crie uma seo
<connectionstrings> contendo os valores conforme mostrado abaixo:
<?xml version="1.0" encoding="utf8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="ProdutosSDF" connectionString="Data Source=c:\users\mac\documents\visual studio
2012\Projects\BancodeDadosLocal\BancodeDadosLocal\Vendas.sdf"/>
</connectionStrings>
</configuration>
Para podermos acessar o valor da string de conexo no arquivo app.config devemos incluir uma referncia no projeto ao
namespace System.Configuration.
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 4/8
No menu PROJECT clique em Add Reference e a seguir selecione o namespace System.Configuration conforme abaixo:
Neste momento voc deve verificar se seu projeto possui a referncia para a biblioteca System.Data.SqlServerCe.dll.
Se no possuir no menu PROJECT clique em Add Reference e a seguir selecione o local :
C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop e a seguir selecione System.Data.SqlServerCe.dll.
Pronto agora j podemos partir para realizar as operaes CRUD.
Separando as responsabilidades Criando um classe para acesso aos dados
Neste momento poderamos colocar o cdigo ADO .NET diretamente nos eventos do botes de comando do formulrio
form1.cs que tudo funcionaria corretamente. Mas essa no uma boa prtica e por isso eu vou criar uma classe e colocar nela
o cdigo que acessa os dados e realiza a persistncia dos mesmos realizando as operaes de incluir, alterar e excluir dados
da tabela Produtos.
No menu PROJECT clique em Add New Item e selecione o template Class e informe o nome DAL.cs. A seguir coloque o cdigo
abaixo nesta classe:
using System;
using System.Configuration;
using System.Data.SqlServerCe;
using System.Data;
namespace BancodeDadosLocal
{
public class DAL
{
private static SqlCeConnection objSqlCeConnection = null;
private static DAL objSqlServerCeDAL = null;
private static string connString = null;
public DAL()
{
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 5/8
string connString = ConfigurationManager.ConnectionStrings["ProdutosSDF"].ToString().Trim();
objSqlCeConnection = new SqlCeConnection(connString);
}
public static DAL GetInstance(string connString)
{
if (objSqlServerCeDAL == null)
{
objSqlServerCeDAL = new DAL();
}
return objSqlServerCeDAL;
}
public void Open()
{
try
{
if (objSqlCeConnection.State == ConnectionState.Closed)
{
objSqlCeConnection.Open();
}
}
catch (Exception e)
{
throw e;
}
}
public void Dispose()
{
try
{
if (objSqlCeConnection.State != ConnectionState.Closed)
{
objSqlCeConnection.Close();
objSqlCeConnection.Dispose();
}
}
catch (Exception e)
{
throw e;
}
}
public int Insert(Produto _produto, string sql)
{
DAL objSqlCeServerDAL = DAL.GetInstance(connString);
objSqlCeServerDAL.Open();
SqlCeCommand dCmd = new SqlCeCommand(sql,objSqlCeConnection);
dCmd.CommandType = CommandType.Text;
try
{
dCmd.Parameters.AddWithValue("@nome", _produto.nome);
dCmd.Parameters.AddWithValue("@estq", _produto.estoque);
dCmd.Parameters.AddWithValue("@cust", _produto.custo);
dCmd.Parameters.AddWithValue("@desc", _produto.descricao);
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 6/8
return dCmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
dCmd.Dispose();
objSqlCeServerDAL.Dispose();
}
}
public int Update(Produto _produto, string sql )
{
DAL objSqlCeServerDAL = DAL.GetInstance(connString);
objSqlCeServerDAL.Open();
SqlCeCommand dCmd = new SqlCeCommand(sql, objSqlCeConnection);
dCmd.CommandType = CommandType.Text;
try
{
dCmd.Parameters.AddWithValue("@nome", _produto.nome);
dCmd.Parameters.AddWithValue("@estq", _produto.estoque);
dCmd.Parameters.AddWithValue("@cust", _produto.custo);
dCmd.Parameters.AddWithValue("@desc", _produto.descricao);
return dCmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
dCmd.Dispose();
objSqlCeServerDAL.Dispose();
}
}
public DataTable Load(string sql)
{
DAL objSqlCeServerDAL = DAL.GetInstance(connString);
objSqlCeServerDAL.Open();
SqlCeDataAdapter dAd = new SqlCeDataAdapter(sql, objSqlCeConnection);
dAd.SelectCommand.CommandType = CommandType.Text;
DataSet dSet = new DataSet();
try
{
dAd.Fill(dSet, "Produtos");
return dSet.Tables["Produtos"];
}
catch
{
throw;
}
finally
{
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 7/8
dSet.Dispose();
dAd.Dispose();
objSqlCeServerDAL.Dispose();
}
}
public int Delete(int codigo,string sql)
{
DAL objSqlCeServerDAL = DAL.GetInstance(connString);
objSqlCeServerDAL.Open();
SqlCeCommand dCmd = new SqlCeCommand(sql, objSqlCeConnection);
dCmd.CommandType = CommandType.Text;
try
{
dCmd.Parameters.AddWithValue("@codigo", codigo);
return dCmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
dCmd.Dispose();
objSqlCeServerDAL.Dispose();
}
}
}
}
Nesta classe criamos os seguintes mtodos:
GetInstance Obtm uma instncia da classe DAL;
Open Abre uma conexo com o banco de dados;
Dispose Libera os recursos e fecha a conexo com banco de dados;
Insert Inclui dados na tabela Produtos;
Update Atualiza os dados na tabela Produtos;
Load Selecione e cria um datatable com os dados atuais da tabela Produtos;
Delete Excluir um registro selecionado na tabela Produtos;
Na segunda parte deste artigo vamos implementar as operaes para incluir, alterar, excluir e exibir dados da tabela Produtos.
Joo 9:40 Alguns fariseus que ali estavam com ele, ouvindo isso, perguntaramlhe: Porventura somos ns
tambm cegos?
Joo 9:41 Respondeulhes Jesus: Se fosseis cegos, no tereis pecado; mas como agora dizeis: Ns vemos,
permanece o vosso pecado.
Veja os Destaques e novidades do SUPER DVD VB 2013 (sempre
atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Veja mais sistemas completos para a plataforma .NET no
Super DVD .NET , confira...
Quer aprender C# ??
Chegou o Super DVD C# 2013 com exclusivo material de
suporte e vdeo aulas com curso bsico sobre C#.
4/18/2014 C# - Cadastro Bsico com SQL Server Local (SDF)
http://www.macoratti.net/14/03/c_csdf1.htm 8/8
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referncias:
Seo VB .NET do Site Macoratti.net
Super DVD .NET A sua porta de entrada na plataforma .NET
Super DVD Vdeo Aulas Vdeo Aula sobre VB .NET, ASP .NET e C#
Seo C# do site Macoratti.net
VB .NET Tratando com i nstnci as do SQL Server Macoratti .net
C# SQL Server Acesso e manuteno de dados ... Macoratti .net
Usando SQL Server Compact 3.5 Macoratti .net
SQL Server Compact Edi ti on e LINQ Macoratti .net
WPF Usando o DataGri d e o SQL Server Compact Macoratti .net
Jos Carlos Macoratti

Potrebbero piacerti anche