Você está na página 1de 5

Nota: Voc pode usar o objeto Command para inserir , atualizar e excluir dados no banco de dados diretamente.

- Abra o Visual Studio e crie um novo projeto Visual Basic ; template - Windows Application - Faa referncia no seu projeto aos namespaces : System , System.Data e System.Data.SqlClient usando a declarao Imports: Imports System Imports System.Data Imports System.Data.SqlClient primeiro vamos carregar o DataSet com dados de uma tabela de um banco de dados; voc j deve ter desconfiado que vamos acessar uma base de dados SQL Server. (Estamos usando o namespace - System.Data.SqlClient ). A string de conexo usada aponta para o banco de dados Teste no meu computador local . A estrutura da tabela com os dados mostrada abaixo:

- A string de conexo com o banco de dados a seguinte: strConexao = "server=(local);Trusted_Connection=yes;database=Teste"

O cdigo do projeto dado abaixo : Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim strConexao As String strConexao = "server=(local);Trusted_Connection=yes;database=Teste" Dim objConexao As New SqlConnection(strConexao) Try objConexao.Open()

Catch ex As Exception MsgBox(ex.GetBaseException) End Try ' Cria uma instncia do objeto DataAdapter. Dim daClientes As New SqlDataAdapter("Select * From Clientes", objConexao) ' Cria uma instncia de um DataSet, e retorna dados da tabela clientes Dim dsTeste As New DataSet("Clientes") daClientes.FillSchema(dsTeste, SchemaType.Source, "Clientes") daClientes.Fill(dsTeste, "Clientes") '--inserindo o registro no DataSet---------------------------------------------------------MsgBox("Agora vou inserir um registro no DataSet", MsgBoxStyle.Information, "Inserir Registro") Dim tblClientes As DataTable tblClientes = dsTeste.Tables("Clientes") ' Obtem um novo objeto DataRow do DataTable Dim drAtual As DataRow drAtual = tblClientes.NewRow() '' Define os novos valores de DataRow drAtual("Codigo") = 7 drAtual("Nome") = "Testolina Testa" drAtual("Endereco") = "Rua Moscou , 109" ' Insere o novo objeto via mtodo Add da coleo DataTable.Rows tblClientes.Rows.Add(drAtual) MsgBox("Registro includo com sucesso na tabela Clientes.", MsgBoxStyle.Information, "Incluindo dados no DataSet") '---------codigo para alterar os dados inseridos ---------------------------------------------MsgBox("Vou alterar o atual no DataSet", MsgBoxStyle.Information, "Alterar Registro") drAtual.BeginEdit() drAtual("nome") = "Yuri Gagarin" drAtual("endereco") = "R Lua Nova , 230" drAtual.EndEdit() MsgBox("Registro alterado com sucesso !", MsgBoxStyle.Information, "Alterando dados no DataSet") '-----------atualiza a tabela clientes do banco de dados Teste no SQL Server 'Atualiza o SQL Server Dim objCommandBuilder As New SqlCommandBuilder(daClientes)

daClientes.Update(dsTeste, "Clientes") MsgBox("A operaes feitas no DataSet iro atualizar o SQL Server !" & Chr(13) & Chr(13) & " Verifique os dados no Servidor", MsgBoxStyle.Exclamation, "Atualizao SQL Server") 'exibe os dados do DataSet DataGrid1.DataSource = dsTeste End Sub End Class

Vamos explicar o cdigo com mais detalhes: Dim strConexao As String strConexao = "server=(local);Trusted_Connection=yes;database=Teste" Dim objConexao As New SqlConnection(strConexao) Try objConexao.Open() Catch ex As Exception MsgBox(ex.GetBaseException) End Try Dim dsTeste As New DataSet("Clientes") daClientes.FillSchema(dsTeste, SchemaType.Source, "Clientes") daClientes.Fill(dsTeste, "Clientes") Dim tblClientes As DataTable tblClientes = dsTeste.Tables("Clientes") ' Obtem um novo objeto DataRow do DataTable Dim drAtual As DataRow drAtual = tblClientes.NewRow() '' Define os novos valores de DataRow drAtual("Codigo") = 6 drAtual("Nome") = "Testolina Testa" drAtual("Endereco") = "Rua Moscou , 109" ' Insere o novo objeto via mtodo Add da coleo DataTable.Rows tblClientes.Rows.Add(drAtual) drAtual.BeginEdit()

- define a string de conexo e cria uma conexo com o banco de dados Teste no SQL Server

- Cria uma instncia de um DataSet, e retorna dados da tabela clientes do banco de dados Teste - Definimos um objeto DataTable - Obtemos um objeto DataRow do Datatable - Criamos uma nova linha e atribumos os novos valores aos campos da tabela - A nova linha includa via mtodo Add na tabela - Efetuamos a alterao do registro atual atribuindo

drAtual("nome") = "Yuri Gagarin" drAtual("endereco") = "R Lua Nova , 230" drAtual.EndEdit() Dim objCommandBuilder As New SqlCommandBuilder(daClientes) daClientes.Update(dsTeste, "Clientes") MsgBox("A operaes feitas no DataSet iro atualizar o SQL Server !" & Chr(13) & Chr(13) & " Verifique os dados no Servidor", MsgBoxStyle.Exclamation, "Atualizao SQL Server") 'exibe os dados do DataSet DataGrid1.DataSource = dsTeste

novos valores para ele.

- Criamos o objeto objCommandBuilder e usando o mtodo Update enviamos os dados para serem alterados no servidor. - exibe os dados do DataSet no DataGrid.

Para atualizar o banco de dados original com todas as alteraes passamos o DataSet via mtodo Update do objeto DataAdapter. Antes de fazer isto preciso definir as propriedades InsertCommand, UpdateCommand, e DeleteCommand do objeto DataAdapter. Voc pode fazer isto manualmente escrevendo cdigo SQL para definir estas propriedades ou podemos fazer com que o VS.NET faa isto para voc automaticamente. Para gerar os comandos requeridos precisamos criar uma instncia do objeto SqlCommandBuilder e usar o objeto DataAdapter no construtor. Foi o que fizemos no cdigo acima. Para que isto seja possvel voc precisa ter a informaes disponveis sobre a chave primria da tabela. Para obter estas informaes usamos mtodo FillSchema e definimos a propriedade MissingSchemaAction do DataAdapter para AddWithKey. No exemplo acima abrimos uma tabela de um banco de dados no SQL Server , incluimos um novo registro e a seguir alteramos o registro inserido. Se voc encerrar a aplicao neste ponto e abrir a tabela no SQL Server vai perceber que nada nela mudou, por isto que usamos o mtodo Update para atualizar os dados no banco de dados original. No final exibimos os dados em um DataGrid , estes dados j refletem a atualizao no banco de dados do Servidor

. Esta apenas uma das maneiras de atualizar os dados usando o objeto DataSet . At o prximo artigo VB .NET

Você também pode gostar