Professional Documents
Culture Documents
Para se criar um arquivo de Banco de Dados no formato do SQL Server 2005 Express Edition (mdf)
deve-se seguir os seguintes passos:
2 – A seguir clicar no botão “Connect to Database”, que ativará a tela de Adição de Conexões.
Clique em Browse p/
escolher o caminho do
arquivo de Banco de
Dados que deseja criar
ou conectar.
A tela de adicionar conexões permite abrir um banco de dados existente, ou criar um novo
banco de dados. Para isso, informar o caminho onde criar o banco e o nome do banco a ser
criado.
3 – Feito isso, será criada uma conexão com o novo banco e a partir dele pode-se criar tabelas,
view, stored procedures, funções entre outras coisas. Para isso, é só clicar com o botão direito sobre
o item que deseja criar.
O exemplo abaixo mostra como criar uma tabela em um banco de dados.
4 – Uma vez adicionada uma nova tabela, basta informar as colunas, o tipo de dados e se o mesmo
pode ou não aceitar valores nulos.
Ao salvar a tabela, se ainda não foi dado um nome para ela, será aberta uma tela para que se
informe o nome da mesma.
6 – Uma vez criada uma tabela pode-se alterar sua definição ou até mesmo visualizar, incluir,
alterar e excluir registros existentes. Para isso basta clicar com o botão direito sobre a tabela e
selecionar a opção “Open Table Definition” para alterar a definição da tabela ou na opção “Show
Table Data” para visualizar e editar os dados da tabela.
2. DataSet
O DataSet é um banco de dados relacional, cujos dados são armazenados apenas em memória.
Trabalha desconectado do banco de dados e tem como características:
Para criar um DataSet clicar no menu Project → Add New Item... ou clicar com o botão direito
sobre o projeto na Solution Explorer e selecionar a opção New Item...
Dessa forma será criado um esquema da tabela do Banco de Dados (físico) para o DataSet
(memória).
Após arrastar uma tabela para um DataSet, automaticamente, é criado um TableAdapter (no
exemplo CidadesTableAdapter) para este DataTable (Cidades).
O TableAdapter é o componente responsável pela interação dos dados de um DataSet (memória)
com o Banco de Dados (físico).
Quando um TableAdapter é criado, são criados comandos SQL de SELECT, INSERT, UPDATE
e DELETE. Como veremos adiante, esses comandos podem ser alterados e há possibilidade de
criar outras rotinas SQL conforme a necessidade da aplicação.
É possível também utilizar Stored Procedures num TableAdapter ao invés de comandos SQL.
Os métodos Fill e GetData, são criados juntamente com o TableAdapter e retornam o SELECT
padrão definido no TableAdapter. Este SELECT é uma seleção de dados simples que retornam
todos os campos de uma tabela sem restrições (clausula WHERE). A diferença entre os métodos
Fill e GetData é que o primeiro preenche um DataTable de um DataSet, por exemplo, o DataTable
Cidades do DataSet dsTreino mostrado anteriormente. Já o GetData simplesmente retorna o
resultado da seleção, sem preencher um DataTable.
Se uma base de dados tiver seu caminho alterado, ao tentar alterar um DataSet, ou ao executar
operações de banco de dados em tempo de execução será gerado um erro, já que os TableAdapters,
responsáveis pela comunicação entre o DataSet e o Banco de Dados, não conseguirão estabelecer
comunicação.
Duplo Clique
Será aberta então, a tela de configurações do projeto. A partir daí, basta clicar sobre a opção
Settings e corrigir o caminho gravado no campo Value como mostra a figura abaixo.
Para criar uma query SQL ou uma Stored Procedure através de um TablaAdapter, basta clicar
sobre o TableAdapter com o botão direito e clicar sobre a opção Add Query.
Será aberta então, uma janela onde escolhe-se o que deseja fazer: criar uma query SQL, criar uma
Stored Procedure ou utilizar uma Stored Procedure existente.
Se selecionar a primeira ou segunda opção (criação de SQL ou stored procedure), e clicar em Next,
aparecerá então, a tela a seguir, que nos permitirá escolher o tipo de procedimento que desejamos
criar.
Quando escolhida uma opção, ao clicar em Next é aberta a tela a seguir já contendo o esboço do
comando SQL selecionado.
Há possibilidade de alterar o nome do método que será criado. Supondo que será criado uma rotina
SQL que retorne um registro de uma tabela cujo código seja igual a um valor passado por
parâmetro, pode-se chamar os métodos de FillByCodigo e GetDataByCodigo.
As procedures existentes
no Banco de Dados
aparecerão aqui. Selecione
a Procedure que desejar.
Clicando em Next, aparecerá a tela onde informaremos o tipo de retorno da Stored Procedure.
Existem 3 tipos de retorno: o Tabular, que retorna dados em formato de tabela, um retorno de um
único valor ou uma procedure sem retorno.
Clicando novamente em Next, será possível informar o nome do método que iremos adicionar.
Por fim, clicando em Next, será exibida uma tela de informações sobre o método criado.
2.4. Criando uma Stored Procedure a partir do VS2005
Podemos criar uma Stored Procedure diretamente pelo TableAdapter ou então através do Server
Explorer.
Para isso basta clicar na conexão desejada, depois clicar com o botão direito na opção Stored
Procedures e depois disso clicar em Add New Stored Procedure no menu que será exibido.
Será aberta então uma janela para que possamos escrever nossa Stored Procedure. Ao clicar em
salvar, essa Stored Procedure será compilada. Se houver algum problema de sintaxe, será emitida
uma mensagem de aviso do erro. Caso contrário a Stored Procedure será criada.
Dica: Evite iniciar o nome de um Stored Procedure com o prefixo “sp_”, pois este é o prefixo
usado nas Stored Procedures do sistema.
3. Desenvolvendo aplicações de acesso a dados utilizando
TableAdapter e BindingSource
Verificar projeto NF_Completo, cadastro de Produtos.
http://docentes.anchieta.br/~ednilsonc/Ambiente%20de%20Programa%e7%e3o%20II/Projetos/
O BindingSource é um componente que tem como principal objetivo conectar componentes como
um DataGridView, TextBox ou ComboBox por exemplo, a um DataTable ou campo de um
DataTable.
Uma vez conectado este componente vai exibir o conteúdo que estiver presente no DataTable. O
BindingSource também gerencia alterações efetuadas num DataTable e, trabalhando em conjunto
com um TableAdapter permite adicionar, alterar e excluir registros de um banco de dados.
Seguindo o exemplo acima, uma vez criado o objeto ProdutosBindingSource no formulário, para
conectar os demais componentes do formulário ao DataTable “Produtos”, não devemos mais
conectar utilizando a opção Other Data Sources e sim diretamente através do objeto
ProdutosBindingSource, caso contrário um novo BindingSource será criado e teremos problemas
na hora de atualizar o banco com o TableAdapter.
A figura a seguir mostra como efetuar um link entre um TextBox e um campo de um DataTable
utilizando um BindingSource:
3.1. Principais comandos de um BindingSource
Me.ProdutosBindingSource.AddNew()
• Para gravar:
'Finaliza a edição do DataTable
Me.ProdutosBindingSource.EndEdit()
'Atualiza o Banco de dados com os dados do DataTalbe Produtos do
'DataSet DsCliente
Me.ProdutosTableAdapter.Update(DsCliente.Produtos)
• Para excluir:
Podemos criar nossas próprias rotinas de SQL para Inclusão, Alteração e Exclusão ou então utilizar
as rotinas já presentes em nosso TableAdapter.
Try
taCidade = New Treino.dsTreinoTableAdapters.CidadesTableAdapter
taCidade.Insert(CInt(txtCodigo.Text), _
txtCidade.Text.Trim.ToUpper, _
cboEstado.SelectedItem.ToString)
Sub Alterar()
Dim taCidade As Treino.dsTreinoTableAdapters.CidadesTableAdapter
Try
'Instancia o objeto CidadesTableAdapter
taCidade = New Treino.dsTreinoTableAdapters.CidadesTableAdapter
'Chama o método UpdateCidades, criado no TableAdapter Cidades
taCidade.UpdateCidades(txtCidade.Text.Trim.ToUpper, _
cboEstado.SelectedItem.ToString, _
CInt(txtCodigo.Text))
Para alterar os comandos padrões de um TableAdapter para que estes executem Stored Procedures,
basta alterar a propriedade CommandType para “StoredProcedure” e na propriedade
CommandText informar o nome da procedure.
É possível também associar Stored Procedures em um TableAdapter como foi mostrado no item
2.3 deste tutorial.
Try
'Cria a Conexão
conn = New SqlConnection(My.Settings.TreinoConnectionString)
'Inicializa o command
cmd = New SqlCommand(strSql, conn)
Catch ex As Exception
Throw ex
Finally
cmd = Nothing
conn = Nothing
End Try
End Function
4.3.2. Executando comandos SQL que possuem retorno
'Inicializa o command
cmd = New SqlCommand(strSQL, conn)
Return dt
Catch ex As Exception
MessageBox.Show(ex.Message, "Erro ao pesquisar", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Return Nothing
Finally
dt = Nothing
cmd = Nothing
da = Nothing
conn = Nothing
End Try
End Function
4.3.3. Executando Stored Procedures
Try
'Cria a Conexão
conn = New SqlConnection(My.Settings.TreinoConnectionString)
'Inicializa o command
cmd = New SqlCommand("usp_de_Cidades", conn)
cmd.CommandType = CommandType.StoredProcedure
Catch ex As Exception
Throw ex
Finally
cmd = Nothing
conn = Nothing
End Try
End Function