A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

DATAPROVIDERS. Base de dados Acesso a uma base de dados através de um data set Acesso a uma base de dados através de um data provider Ligação controlada.

Apresentações semelhantes


Apresentação em tema: "DATAPROVIDERS. Base de dados Acesso a uma base de dados através de um data set Acesso a uma base de dados através de um data provider Ligação controlada."— Transcrição da apresentação:

1 DATAPROVIDERS

2 Base de dados Acesso a uma base de dados através de um data set 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 Controlos de apresentação dos dados Controlos ligados Binding controls Controlos de apresentação dos dados Controlos não ligados

3 Imports System.Data.SqlClient 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

4 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. NamespaceTipo System.Data.SqlClientBases de dados alojadas num servidor SQL. System.Data.OleDBOrigens de dados expostas através do protocolo OLE. (Ex: Access, Excel e páginas Web e ASCII) System.Data.OdbcOrigens de dados expostas através do protocolo ODBC. System.Data.OracleClientBases de dados Oracle. System.Data.SqlServerCeBases de dados Microsoft SQL Server Compact 3.5

5 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" AtributoSignificado Data SourceA instância do SQL Server que fornece os dados. AttachDbFilenameA indicação do local do ficheiro da base de dados. Integrated SecurityO modo de segurança da B.D; com a opção TRUE, essa segurança fica integrada com o Windows. Connect TimeoutEspaço de tempo limite em segundos para o estabelecimento da ligação ao servidor. User InstanceDefine 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”

6 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. NamespaceClasse para ligação à B.D System.Data.SqlClientSqlConnection System.Data.OleDBOleDbConnection System.Data.SqlServerCeSqlCeConnection

7 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()

8 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 … ] SELECT Artigo, Categoria, Preço, Quantidade FROM Artigos SELECT * FROM Artigos 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 *.

9 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. NamespaceClasse para fazer executar um comando SQL. System.Data.SqlClientSqlCommand System.Data.OleDBOleDbCommand System.Data.SqlServerCeSqlCeCommand

10 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. NamespaceClasse DataReader System.Data.SqlClientSqlDataReader System.Data.OleDBOleDbDataReader System.Data.SqlServerCeSqlCeDataReader

11 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 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() A Terceira Fase consiste em fazer com que os dados obtidos na leitura sejam escritos de forma adequada na interface(datgridview).

12 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 Limpa (clear) os campos da grelha se ela contiver dados. 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. 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. Name da coluna Header Text da coluna Adiciona colunas à grelha.

13 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 Ciclo que se repete enquanto houver dados, adicionando linhas à grelha e colocando valores nessas linhas correspondentes aos valores dos registos da tabela. Cria objeto linha para adicionar posteriormente uma nova linha à grelha. Ciclo para preencher nas K colunas os valores dos K campos. Linha Campo Propriedade Ajusta as colunas da grelha aos dados a apresentar.

14 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?: ") 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 Para saber qual o registo que vamos apagar, pedimos ao utilizador que nos dê o nome do artigo a apagar.

15 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() 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. SqlConnection OleDbConnection SqlCeConnection 1 2

16 Delete Artigos Where Artigo Like ‘ Alicate ‘ Interrupção da string para passar a variável artigo Variável que representa Alicate Dim sql As String = “ Delete Artigos where artigo Like ‘ " & artigo & “ ‘ " Dim sqlcom As New SqlCommand(sql, con) Fim da string Retoma a string Inicio da string 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) Delete Pessoa Where Id = 999 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

17 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 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. 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”

18 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: ") 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 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.

19 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() 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. SqlConnection OleDbConnection SqlCeConnection 1 2

20 Interrupção da string para passar a variável _______ 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) Retoma a string Fim da string Inicio da string 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 Insert into Artigos (Artigo, Categoria, Preço, Quantidade) Values ( ‘ Martelo ‘, ‘Ferramentas’, ’12’, ‘4’)

21 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 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. 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”

22 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: ") Dim sql As String = "Select * from artigos where categoria like'" & categoria & "'" 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 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 Declaração da variável que irá receber a categoria a pesquisar.

23 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() 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. SqlConnection OleDbConnection SqlCeConnection 1 2

24 Dim sql As String = “ Select * from artigos where categoria like ‘ " & categoria & “ ‘ " Dim sqlcom As New SqlCommand(sql, con) 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. NamespaceClasse CommandClasse DataReader System.Data.SqlClientSqlCommandSqlDataReader System.Data.OleDBOleDbCommandOleDbDataReader System.Data.SqlServerCeSqlCeCommandSqlCeDataReader Podemos restringir o conjunto de registos a apresentar utilizando a cláusula WHERE. Sintaxe: SELECT campo1, campo2,…,campo n FROM tabela1, …, tabela k WHERE Condição Inicio da string Fim da string Retoma a string Interrupção da string para passar a variável categoria Select * From Artigos Where Categoria like ‘ Escritório ‘

25 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 Limpa (clear) os campos da grelha se ela contiver dados. 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. 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. Name da coluna Header Text da coluna Adiciona colunas à grelha.

26 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 Ciclo que se repete enquanto houver dados, adicionando linhas à grelha e colocando valores nessas linhas correspondentes aos valores dos registos da tabela. Cria objeto linha para adicionar posteriormente uma nova linha à grelha. Ciclo para preencher nas K colunas os valores dos K campos. Linha Campo Propriedade Ajusta as colunas da grelha aos dados a apresentar.

27 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: ") 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 Declaração da variável que irá receber o artigo a pesquisar. Leitura da variável através de uma InputBox.

28 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() 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. SqlConnection OleDbConnection SqlCeConnection 1 2

29 Dim sql As String = “ Select * from artigos where artigo like ‘ " & artigo & “ ‘ " Dim sqlcom As New SqlCommand(sql, con) 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. NamespaceClasse CommandClasse DataReader System.Data.SqlClientSqlCommandSqlDataReader System.Data.OleDBOleDbCommandOleDbDataReader System.Data.SqlServerCeSqlCeCommandSqlCeDataReader Podemos restringir o conjunto de registos a apresentar utilizando a cláusula WHERE. Sintaxe: SELECT campo1, campo2,…,campo n FROM tabela1, …, tabela k WHERE Condição Inicio da string Fim da string Retoma a string Interrupção da string para passar a variável artigo Select * From Artigos Where Artigo like ‘ Papel A4 ‘

30 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 Limpa (clear) os campos da grelha se ela contiver dados. 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. 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. Name da coluna Header Text da coluna Adiciona colunas à grelha.

31 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 Ciclo que se repete enquanto houver dados, adicionando linhas à grelha e colocando valores nessas linhas correspondentes aos valores dos registos da tabela. Cria objeto linha para adicionar posteriormente uma nova linha à grelha. Ciclo para preencher nas K colunas os valores dos K campos. Linha Campo Propriedade Ajusta as colunas da grelha aos dados a apresentar.

32 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 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 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.

33 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() 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. SqlConnection OleDbConnection SqlCeConnection 1 2

34 Interrupção da string para passar a variável _______ 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) Retoma a string Fim da string Inicio da string 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] 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 Update Artigos Set Categoria =‘ Ferramentas’, Preço= ‘12.85’, Quantidade=’ 19 ’ Where artigo like ‘ Martelo ‘

35 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 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. 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”

36 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) Inserir / Eliminar / Alterar (Insert, Delete, Update) +( 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 ) 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 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()

37 DataGridView1.Columns.Add(campo, campo) DataGridView1.Rows(i).Cells(k).Value = dr.Item(k) Dim linha As New DataGridViewRow DataGridView1.Rows.Add(linha) Adiciona colunas à grelha. Cria objeto linha para adicionar uma nova linha à grelha. DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.AllCells Ajusta as colunas da grelha aos dados a apresentar.

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53 Figura que ilustra os elementos chave que constituem um chart (ou gráfico) Imports System.Windows.Forms.DataVisualization.Charting

54 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 '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"}

55

56

57

58

59

60

61

62

63

64

65

66

67

68


Carregar ppt "DATAPROVIDERS. Base de dados Acesso a uma base de dados através de um data set Acesso a uma base de dados através de um data provider Ligação controlada."

Apresentações semelhantes


Anúncios Google