Gráficos

Propaganda
*
DATAPROVIDERS
*
Controlos de
apresentação
dos dados
Acesso a uma base de dados através
de um data set
Controlos
ligados
Binding controls
Base de
dados
Controlos de
apresentação
dos dados
Controlos não
ligados
Acesso a uma base de dados através
de um data provider
Ligação controlada por programação e
objetos específicos desse tipo de ligação
*Listar uma tabela da
Imports System.Data.SqlClient
Base de Dados
Public Class Form1
Private Sub ArtigosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)…
Const cs As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
Dim sql As String = "Select * From Artigos"
Dim sqlcom As New SqlCommand(sql, con)
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
.
.
.
con.Close()
End Sub
End Class
Primeira Fase
Segunda Fase
*DATAPROVIDERS
Imports System.Data.SqlClient
Esta declaração importa o namespace Data.SqlClient, de System, que contém as
classes de objetos necessárias para a programação que vamos escrever.
Namespace
Tipo
System.Data.SqlClient
Bases de dados alojadas num servidor SQL.
System.Data.OleDB
Origens de dados expostas através do protocolo OLE.
(Ex: Access, Excel e páginas Web e ASCII)
System.Data.Odbc
Origens de dados expostas através do protocolo ODBC.
System.Data.OracleClient
Bases de dados Oracle.
System.Data.SqlServerCe
Bases de dados Microsoft SQL Server Compact 3.5
*CONNECTION STRING
Microsof SQL Server Database File
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Atributo
Significado
Data Source
A instância do SQL Server que fornece os dados.
AttachDbFilename
A indicação do local do ficheiro da base de dados.
Integrated Security
O modo de segurança da B.D; com a opção TRUE, essa
segurança fica integrada com o Windows.
Connect Timeout
Espaço de tempo limite em segundos para o
estabelecimento da ligação ao servidor.
User Instance
Define se deverá, ou não, ser criada uma instância
virtual para cada utilizador que acede ao servidor.
Access
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\professor.ESMAIA\Desktop\base de testes.accdb"
Microsoft SQL Server Compact 3.5
“Data Source=C:\Users\professor.ESMAIA\Desktop\Empresa.sdf”
*SqlConnection
Dim con As New SqlConnection(cs)
Cria um objeto com o nome con sendo do tipo SqlConnection (ligação ao
servidor SQL), fazendo passar cs – a connection string.
Namespace
Classe para ligação à B.D
System.Data.SqlClient
SqlConnection
System.Data.OleDB
OleDbConnection
System.Data.SqlServerCe
SqlCeConnection
*Primeira fase
A instrução con.Open( ) abre a ligação e a instrução con.close( ) fecha-a.
A primeira fase deste processo consiste em estabelecer a ligação com o
servidor e a base de dados. Começa com a criação da connection string e
termina com abertura da ligação: con.open ( ).
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
*Segunda fase
A segunda fase das operações vai consistir em enviar um comando SQL para
ser executado na base de dados.
Dim sql As String = "Select * From Artigos"
Isto cria a variável sql como uma string que codifica um comando SQL.
A interrogação de qualquer Base de Dados Relacional faz-se sempre utilizando o comando SELECT.
Sintaxe:
SELECT campo1, campo2,… ,campo n
FROM tabela1, … , tabela k
[WHERE Condição ]
[GROUP BY … ]
[HAVING … ]
[ORDER BY … ]
Se quisermos saber toda a informação que existe na tabela (todas as colunas), indicamos cada
uma das colunas separadas por vírgula. O nome de todos os campos pode ser substituído pelo
carácter asterisco *.
SELECT Artigo, Categoria, Preço, Quantidade
FROM Artigos
SELECT *
FROM Artigos
*Instanciar objeto da
classe xxxCommand
Cria o objeto sqlcom, a partir da classe SqlCommand, fazendo passar dois
parâmetros:

sql – o comando SQL

con – o objeto que contém a informação sobre a ligação
estabelecida com a base de dados.
Namespace
Classe para fazer executar um comando SQL.
System.Data.SqlClient
SqlCommand
System.Data.OleDB
OleDbCommand
System.Data.SqlServerCe
SqlCeCommand
*DATAREADER
Quando o objetivo é efetuar consultas diretas sobre o sistema de base de
dados, opta-se pela instanciação de uma classe SqlDataReader, que permite ler
um conjunto de registos obtido através de um comando SQL.
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
O objeto dr recebe os dados obtidos, com a execução do comando SQL, através
do método ExecuteReader() do objeto sqlcom.
ExecuteReader() - Serve para executar seleções de dados, retornando os
registos da seleção efetuada.
Namespace
Classe DataReader
System.Data.SqlClient
SqlDataReader
System.Data.OleDB
OleDbDataReader
System.Data.SqlServerCe
SqlCeDataReader
*
DataGridView1.Columns.Clear()
Dim n As Integer = dr.FieldCount
Dim campo As String
Dim k As Integer
For k = 0 To n - 1
campo = dr.GetName(k)
DataGridView1.Columns.Add(campo, campo)
Next
A Terceira Fase consiste em fazer com
que os dados obtidos na leitura sejam
escritos
de
forma
adequada
na
interface(datgridview).
Dim i As Integer = 0
While dr.Read()
Dim linha As New DataGridViewRow
DataGridView1.Rows.Add(linha)
For k = 0 To n - 1
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
Next
i += 1
End While
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.AllCells
con.Close()
*Terceira fase
DataGridView1.Columns.Clear()
Limpa (clear) os campos da grelha se ela contiver dados.
Dim n As Integer = dr.FieldCount
A variável n é declarada como inteira e simultaneamente
inicializada com o número de campos que a tabela
possui, valor esse retornado pela propriedade
FieldCount (contar campos)do objeto dr.
Dim campo As String
Dim k As Integer
For k = 0 To n - 1
campo = dr.GetName(k)
Ciclo para preencher o cabeçalho da grelha com o nome
dos campos da tabela.
O nome dos campos é obtido pela função GetName, que
tem como argumento a variável K que representa a
posição que cada campo ocupa na tabela .
DataGridView1.Columns.Add(campo, campo)
Adiciona colunas à grelha.
Next
Name da coluna
Header Text da coluna
*
Dim i As Integer = 0
While dr.Read()
Ciclo que se repete enquanto houver dados, adicionando linhas à grelha e
colocando valores nessas linhas correspondentes aos valores dos registos da tabela.
Dim linha As New DataGridViewRow
DataGridView1.Rows.Add(linha)
Cria
objeto
linha
para
adicionar
posteriormente uma nova linha à grelha.
For k = 0 To n - 1
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
Next
i += 1
Linha
Campo
Ciclo
para
preencher nas K
colunas
os
valores dos K
campos.
Propriedade
End While
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.AllCells
Ajusta as colunas da grelha aos dados a apresentar.
*
Private Sub ClientesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)…
Const cs As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
Dim artigo As String
artigo = InputBox("Qual o artigo a eliminar?: ")
Para saber qual o registo que vamos apagar, pedimos ao
utilizador que nos dê o nome do artigo a apagar.
Dim sql As String = "Delete Artigos where artigo Like '" & artigo & "'"
Dim sqlcom As New SqlCommand(sql, con)
Dim nr As Integer
nr = sqlcom.ExecuteNonQuery()
If nr > 0 Then
MsgBox("Nº de registos apagados: " & nr)
Else
MsgBox("Artigo não encontrado")
End If
con.Close()
End Sub
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
SqlConnection
OleDbConnection
SqlCeConnection
1
2
1ª Fase – Estabelecer a Ligação à Base de dados
Instanciar uma classe xxxConnection, fazendo passar a connection string
previamente atribuída a uma constante, para após abrir a ligação.
*Estabelecer a ligação à base
de dados
Interrupção da string para
passar a variável artigo
Inicio da
string
Retoma a
string
Fim da
string
Dim sql As String = “ Delete Artigos where artigo Like ‘ " & artigo & “ ‘ "
Dim sqlcom As New SqlCommand(sql, con)
Delete Pessoa
Where Id = 999
Variável que
representa
Alicate
Delete Artigos
Where Artigo Like ‘ Alicate ‘
O comando DELETE permite apagar conjuntos de linhas (registos ) existentes numa única tabela.
Sintaxe:
DELETE
FROM tabela
[WHERE Condição ] (A cláusula where restringe o conjunto de registos que irão ser apagados)
Cria o objeto sqlcom, a partir da classe SqlCommand, fazendo passar dois parâmetros: sql (o comando SQL)
e con ( o objeto que contém a informação sobre a ligação estabelecida com a base de dados).
SqlCommand
OleDbCommand
SqlCeCommand
*Código para apagar um
registo numa tabela
Como o próprio nome indica serve
para executar não query’s (selecções
de dados) mas sim para executar
comandos Transact-SQL como o
INSERT, UPDATE e DELETE. Retorna um
valor inteiro com o número de registos
afectados pela operação.
Dim nr As Integer
nr = sqlcom.ExecuteNonQuery()
If nr > 0 Then
MsgBox("Nº de registos apagados: " & nr)
Else
MsgBox("Artigo não encontrado")
End If
con.Close()
Como podem verificar nos exemplos de código, o que muda
essencialmente é o comando Transact-SQL. A estrutura é sempre
igual para inserir, atualizar e apagar dados, podendo haver mais
ou menos parâmetros. Os comandos T-SQL têm sempre esta
estrutura:
“INSERT INTO Tabela (campo1, campo2) VALUES (valor1, valor2)”
“UPDATE Tabela SET campo1 = valor1, campo2 = valor2”
“DELETE FROM Tabela WHERE campos1 = valor1”
*
*
Private Sub InserirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles …
Const cs As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
Dim nome, categoria As String
Dim quant, preço As Integer
nome = InputBox("Nome do Artigo: ")
categoria = InputBox("Categoria do Artigo: ")
preço = InputBox("Preço do Artigo: ")
quant = InputBox("Quantidade do Artigo: ")
Declaração das variáveis para de seguida, através de
InputBox, efetuar a leitura dos dados para os poder inserir na
base de dados.
Dim sql As String = "Insert into Artigos (Artigo, Categoria, Preço, Quantidade) Values ('" & nome & "','" & categoria & "','" &
preço & "','" & quant & "')"
Dim sqlcom As New SqlCommand(sql, con)
Dim nr As Integer
Try
nr = sqlcom.ExecuteNonQuery()
Catch ex As Exception
MsgBox("Erro: " & ex.Message)
End Try
MsgBox("Nº de registos Inseridos: " & nr)
con.Close()
End Sub
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
SqlConnection
OleDbConnection
SqlCeConnection
1
2
1ª Fase – Estabelecer a Ligação à Base de dados
Instanciar uma classe xxxConnection, fazendo passar a connection string
previamente atribuída a uma constante, para após abrir a ligação.
*Estabelecer a ligação à base
de dados
Inicio da
string
Retoma a string
Dim sql As String =
“ Insert into Artigos (Artigo, Categoria, Preço, Quantidade)
Values (‘ " & nome & “ ',‘ " & categoria & “ ',‘ " & preço & “ ',‘ " & quant & “ ‘) "
Dim sqlcom As New SqlCommand(sql, con)
Interrupção da string para passar a variável _______
Fim da
string
Insert into Artigos (Artigo, Categoria, Preço, Quantidade)
Values ( ‘ Martelo ‘, ‘Ferramentas’, ’12’, ‘4’)
O comando INSERT permite realizar a introdução de novos registos numa tabela da Base de Dados.
Sintaxe:
INSERT INTO tabela (Campo1, … ,Campo k)
VALUES(valor1, …,valor k)
Cria o objeto sqlcom, a partir da classe SqlCommand, fazendo passar dois parâmetros: sql (o comando SQL)
e con ( o objeto que contém a informação sobre a ligação estabelecida com a base de dados).
SqlCommand
OleDbCommand
SqlCeCommand
*Código para inserir um
registo numa tabela
Como o próprio nome indica serve
para executar não query’s (selecções
de dados) mas sim para executar
comandos Transact-SQL como o
INSERT, UPDATE e DELETE. Retorna um
valor inteiro com o número de registos
afectados pela operação.
Dim nr As Integer
Try
nr = sqlcom.ExecuteNonQuery()
Catch ex As Exception
MsgBox("Erro: " & ex.Message)
End Try
MsgBox("Nº de registos Inseridos: " & nr)
con.Close()
Como podem verificar nos exemplos de código, o que muda
essencialmente é o comando Transact-SQL. A estrutura é sempre
igual para inserir, atualizar e apagar dados, podendo haver mais
ou menos parâmetros. Os comandos T-SQL têm sempre esta
estrutura:
“INSERT INTO Tabela (campo1, campo2) VALUES (valor1, valor2)”
“UPDATE Tabela SET campo1 = valor1, campo2 = valor2”
“DELETE FROM Tabela WHERE campos1 = valor1”
*
*
Private Sub ProcurarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) …
Const cs As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
Dim categoria As String
categoria = InputBox("Digite a categoria a procurar: ")
Declaração da variável que irá receber a categoria a
pesquisar.
Dim sql As String = "Select * from artigos where categoria like'" & categoria & "'"
Dim sqlcom As New SqlCommand(sql, con)
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
Dim i As Integer = 0
DataGridView1.Columns.Clear()
Dim n As Integer = dr.FieldCount
Dim campo As String
Dim k As Integer
For k = 0 To n - 1
campo = dr.GetName(k)
DataGridView1.Columns.Add(campo, campo)
Next
While dr.Read()
Dim linha As New DataGridViewRow()
DataGridView1.Rows.Add(linha)
For k = 0 To n - 1
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
Next
i += 1
End While
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnMode.AllCells
con.Close()
End Sub
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
SqlConnection
OleDbConnection
SqlCeConnection
1
2
1ª Fase – Estabelecer a Ligação à Base de dados
Instanciar uma classe xxxConnection, fazendo passar a connection string
previamente atribuída a uma constante, para após abrir a ligação.
*Estabelecer a ligação à base
de dados
*Código para procurar
Inicio da
string
registos numa tabela
Retoma a
string
Fim da
string
Interrupção da string para
passar a variável categoria
Dim sql As String =
“ Select * from artigos where categoria like ‘ " & categoria & “ ‘ "
Dim sqlcom As New SqlCommand(sql, con)
Select *
From Artigos
Where Categoria like ‘ Escritório ‘
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
Quando o objetivo é efetuar consultas diretas sobre o sistema de base de dados, opta-se pela instanciação
de uma classe SqlDataReader, que permite ler um conjunto de registos obtido através de um comando SQL.
O objeto dr recebe os dados obtidos, com a execução do comando SQL, através do método ExecuteReader()
do objeto sqlcom.
ExecuteReader() - Serve para executar seleções de dados, retornando os registos da seleção efetuada.
Namespace
Classe Command
Classe DataReader
System.Data.SqlClient
SqlCommand
SqlDataReader
System.Data.OleDB
OleDbCommand
OleDbDataReader
Podemos restringir o conjunto de registos a apresentar
utilizando a cláusula WHERE.
Sintaxe:
System.Data.SqlServerCe
SqlCeCommand
SqlCeDataReader
SELECT campo1, campo2,… ,campo n
FROM tabela1, … , tabela k
WHERE Condição
*Código para procurar
registos numa tabela
DataGridView1.Columns.Clear()
Limpa (clear) os campos da grelha se ela contiver dados.
Dim n As Integer = dr.FieldCount
A variável n é declarada como inteira e simultaneamente
inicializada com o número de campos que a tabela
possui, valor esse retornado pela propriedade
FieldCount (contar campos)do objeto dr.
Dim campo As String
Dim k As Integer
For k = 0 To n - 1
campo = dr.GetName(k)
Ciclo para preencher o cabeçalho da grelha com o nome
dos campos da tabela.
O nome dos campos é obtido pela função GetName, que
tem como argumento a variável K que representa a
posição que cada campo ocupa na tabela .
DataGridView1.Columns.Add(campo, campo)
Adiciona colunas à grelha.
Next
Name da coluna
Header Text da coluna
*
Dim i As Integer = 0
While dr.Read()
Ciclo que se repete enquanto houver dados, adicionando linhas à grelha e
colocando valores nessas linhas correspondentes aos valores dos registos da tabela.
Dim linha As New DataGridViewRow
DataGridView1.Rows.Add(linha)
Cria
objeto
linha
para
adicionar
posteriormente uma nova linha à grelha.
For k = 0 To n - 1
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
Next
i += 1
Linha
Campo
Ciclo
para
preencher nas K
colunas
os
valores dos K
campos.
Propriedade
End While
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.AllCells
Ajusta as colunas da grelha aos dados a apresentar.
*
Private Sub ProcurarAlterarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Const cs As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True“
Dim con As New SqlConnection(cs)
con.Open()
Dim artigo As String
artigo = InputBox("Digite o Artigo a procurar: ")
Declaração da variável que irá receber o artigo a pesquisar.
Leitura da variável através de uma InputBox.
Dim sql As String = "Select * from artigos where artigo like'" & artigo & "'"
Dim sqlcom As New SqlCommand(sql, con)
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
DataGridView1.Columns.Clear()
Dim n As Integer = dr.FieldCount
Dim campo As String
Dim k As Integer
For k = 0 To n - 1
campo = dr.GetName(k)
DataGridView1.Columns.Add(campo, campo)
Next
Dim i As Integer = 0
Dim linha As New DataGridViewRow()
DataGridView1.Rows.Add(linha)
While dr.Read()
For k = 0 To n - 1
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
Next
i += 1
End While
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnMode.AllCells
con.Close()
Button1.Visible = True
End Sub
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
SqlConnection
OleDbConnection
SqlCeConnection
1
2
1ª Fase – Estabelecer a Ligação à Base de dados
Instanciar uma classe xxxConnection, fazendo passar a connection string
previamente atribuída a uma constante, para após abrir a ligação.
*Estabelecer a ligação à base
de dados
*Código para procurar e alterar
Inicio da
string
registos numa tabela
Interrupção da string para
passar a variável artigo
Fim da
string
Retoma a
string
Dim sql As String =
“ Select * from artigos where artigo like ‘ " & artigo & “ ‘ "
Dim sqlcom As New SqlCommand(sql, con)
Select *
From Artigos
Where Artigo like ‘ Papel A4 ‘
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
Quando o objetivo é efetuar consultas diretas sobre o sistema de base de dados, opta-se pela instanciação
de uma classe SqlDataReader, que permite ler um conjunto de registos obtido através de um comando SQL.
O objeto dr recebe os dados obtidos, com a execução do comando SQL, através do método ExecuteReader()
do objeto sqlcom.
ExecuteReader() - Serve para executar seleções de dados, retornando os registos da seleção efetuada.
Namespace
Classe Command
Classe DataReader
System.Data.SqlClient
SqlCommand
SqlDataReader
System.Data.OleDB
OleDbCommand
OleDbDataReader
Podemos restringir o conjunto de registos a apresentar
utilizando a cláusula WHERE.
Sintaxe:
System.Data.SqlServerCe
SqlCeCommand
SqlCeDataReader
SELECT campo1, campo2,… ,campo n
FROM tabela1, … , tabela k
WHERE Condição
*Código para procurar e
alterar registos numa tabela
DataGridView1.Columns.Clear()
Limpa (clear) os campos da grelha se ela contiver dados.
Dim n As Integer = dr.FieldCount
A variável n é declarada como inteira e simultaneamente
inicializada com o número de campos que a tabela
possui, valor esse retornado pela propriedade
FieldCount (contar campos)do objeto dr.
Dim campo As String
Dim k As Integer
For k = 0 To n - 1
campo = dr.GetName(k)
Ciclo para preencher o cabeçalho da grelha com o nome
dos campos da tabela.
O nome dos campos é obtido pela função GetName, que
tem como argumento a variável K que representa a
posição que cada campo ocupa na tabela .
DataGridView1.Columns.Add(campo, campo)
Adiciona colunas à grelha.
Next
Name da coluna
Header Text da coluna
*
Dim i As Integer = 0
While dr.Read() Ciclo
que se repete enquanto houver dados, adicionando linhas à grelha e
colocando valores nessas linhas correspondentes aos valores dos registos da tabela.
Dim linha As New DataGridViewRow
DataGridView1.Rows.Add(linha)
Cria
objeto
linha
para
adicionar
posteriormente uma nova linha à grelha.
For k = 0 To n - 1
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
Next
i += 1
Linha
Campo
Ciclo
para
preencher nas K
colunas
os
valores dos K
campos.
Propriedade
End While
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.AllCells
Ajusta as colunas da grelha aos dados a apresentar.
*
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) …
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
Dim artigo, categoria As String
Dim preço, quantidade As Integer
artigo = DataGridView1.Rows(0).Cells(0).Value
categoria = DataGridView1.Rows(0).Cells(1).Value
preço = DataGridView1.Rows(0).Cells(2).Value
quantidade = DataGridView1.Rows(0).Cells(3).Value
Declaração de variáveis. Estas vão receber os
valores que se encontram nas diversas
colunas da DataGridView e que são os valores
do registo a alterar.
A propriedade Value de uma célula de uma
determinada linha atribui valores às variáveis
declaradas.
Dim sql As String = "Update Artigos set categoria='" & categoria & "',preço='" & preço &
"',quantidade='" & quantidade & "'" & "where artigo like '" & artigo & "'"
Dim sqlcom As New SqlCommand(sql, con)
Dim nr As Integer
Try
nr = sqlcom.ExecuteNonQuery
Catch ex As Exception
MsgBox("Erro: " & ex.Message)
End Try
MsgBox("Nº de registos alterados: " & nr)
con.Close()
Button1.Visible = False
End Sub
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
SqlConnection
OleDbConnection
SqlCeConnection
1
2
1ª Fase – Estabelecer a Ligação à Base de dados
Instanciar uma classe xxxConnection, fazendo passar a connection string
previamente atribuída a uma constante, para após abrir a ligação.
*Estabelecer a ligação à base
de dados
Inicio da
string
Retoma a string
Dim sql As String =
“ Update Artigos
set categoria= ‘ " & categoria & “ ',preço= ‘ " & preço & “ ',quantidade= ‘ " & quantidade & “ ‘ " &
“ where artigo like ‘ " & artigo & “ ‘ "
Dim sqlcom As New SqlCommand(sql, con)
Fim da
string
Interrupção da string para passar a variável _______
Update Artigos Set Categoria =‘ Ferramentas’, Preço= ‘12.85’, Quantidade=’ 19 ’
Where artigo like ‘ Martelo ‘
O comando UPDATE permite alterar os valores já existentes nos campos de uma única tabela.
Sintaxe:
UPDATE tabela
SET Nome_coluna1= {expressão1, query1},
Nome_coluna2= {expressão2, query2}, …
[WHERE condição]
SqlCommand
Cria o objeto sqlcom, a partir da classe SqlCommand, fazendo passar dois
parâmetros: sql (o comando SQL) e con ( o objeto que contém a informação sobre a
ligação estabelecida com a base de dados).
*Código para procurar e
OleDbCommand
SqlCeCommand
alterar registos numa tabela
Como o próprio nome indica serve
para executar não query’s (selecções
de dados) mas sim para executar
comandos Transact-SQL como o
INSERT, UPDATE e DELETE. Retorna um
valor inteiro com o número de registos
afectados pela operação.
Dim nr As Integer
Try
nr = sqlcom.ExecuteNonQuery()
Catch ex As Exception
MsgBox("Erro: " & ex.Message)
End Try
MsgBox("Nº de registos Inseridos: " & nr)
con.Close()
Como podem verificar nos exemplos de código, o que muda
essencialmente é o comando Transact-SQL. A estrutura é sempre
igual para inserir, atualizar e apagar dados, podendo haver mais
ou menos parâmetros. Os comandos T-SQL têm sempre esta
estrutura:
“INSERT INTO Tabela (campo1, campo2) VALUES (valor1, valor2)”
“UPDATE Tabela SET campo1 = valor1, campo2 = valor2”
“DELETE FROM Tabela WHERE campos1 = valor1”
*
*
Const cs As String =
"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Luís\Desktop\EmpresaMaia.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(cs)
con.Open()
Listar / Procurar
(SELECT)
Dim sql As String =
“ Select * from Tabela
Dim sqlcom As New SqlCommand(sql , con)
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
+ ( Código para criar cabeçalho da DataGridView)
dr.FieldCount e dr.GetName( i )
+ (Código para preencher a DataGridView)
While dr.Read( ) e dr.Item ( i )
+( Código para ler variável
que vai suportar a condição (Where))
Dim sql As String =
“ Select * from Tabela where campo like ‘ " & artigo & “ ‘ "
Dim sqlcom As New SqlCommand(sql , con)
Dim dr As SqlDataReader = sqlcom.ExecuteReader()
+ ( Código para criar cabeçalho da DataGridView)
dr.FieldCount e dr.GetName( i )
+ (Código para preencher a DataGridView)
While dr.Read( ) e dr.Item ( i )
Inserir / Eliminar / Alterar
(Insert , Delete, Update)
+( Código para ler as variáveis
que vai suportar os valores a inserir na tabela.)
Dim sql As String =
“ Insert into Tabela (Campo1, … , Campo n)
Values ( ‘ " & valor1 & “ ',‘ " & valor n & “ ‘ ) "
Dim sqlcom As New SqlCommand(sql, con)
…
sqlcom.ExecuteNonQuery()
+( Código para ler variável
que vai suportar a condição (Where))
Dim sql As String =
“ Delete Artigos where artigo Like ‘ " & artigo & “ ‘ "
Dim sqlcom As New SqlCommand(sql, con)
…
sqlcom.ExecuteNonQuery()
+( Código para ler as variáveis
que representam o registo a alterar.)
Dim sql As String =
“ Update Artigos
set campo1=‘ " & valor1 & “ ',campo2=‘ " & valor2
“ where campo like ‘ " & artigo & “ ‘ "
Dim sqlcom As New SqlCommand(sql, con)
…
sqlcom.ExecuteNonQuery()
DataGridView1.Columns.Add(campo, campo)
Adiciona colunas à grelha.
Dim linha As New DataGridViewRow
Cria objeto linha
DataGridView1.Rows.Add(linha)
para adicionar uma nova linha à grelha.
DataGridView1.Rows(i).Cells(k).Value = dr.Item(k)
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.AllCells
Ajusta as colunas da grelha aos dados a apresentar.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Figura que ilustra os elementos chave que constituem um chart (ou gráfico)
Imports System.Windows.Forms.DataVisualization.Charting
'define os valores do eixo y - milhoes de pessoas
Dim yPopulacao() As Double = {191480, 46000, 39934,28221, 28121, 16803,
13481, 9694, 6238, 3350}
'define os valoes do eixo x - nome dos paises
Dim xPaises() As String = {"Brasil", "Colombia", "Argentina","Peru", "Venezuela",
"Chile","Equador", "Bolivia", "Paraguai", "Uruguai"}
Private Sub btnGraficoTorta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnGraficoTorta.Click
With Chart1
'define o tipo de gráfico
.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Pie
'define o titulo do gráfico
.Titles.Add("Os 10 países mais populosos da América do Sul")
'habilita a visão em 3D
.ChartAreas(0).Area3DStyle.Enable3D = True
'define inclinação, rotação e perspectiva .ChartAreas(0).Area3DStyle.Inclination = 20
.ChartAreas(0).Area3DStyle.Rotation = 50 .ChartAreas(0).Area3DStyle.Perspective = 10
'define o estilo da linha
.ChartAreas(0).Area3DStyle.LightStyle = LightStyle.Realistic
'define a paleta
.Palette = ChartColorPalette.BrightPastel
'vincula os dados ao gráfico
.Series(0).Points.DataBindXY(xPaises, yPopulacao)
'exibe os valores no eixo do gráfico
.Series(0).IsValueShownAsLabel = True
End With
End Sub
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Download