Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Hellblazer

Inserir Dados em uma Base de dados SQL

Recommended Posts

Hellblazer

Bem ja reparei aqui no forum que muita gente come-te o mesmo erro ao tentar inserir dados em uma base de dados e estou criar este topico para explicar onde a maioria das pessoas erra.

Vou inserir um código que retirei de http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server.html (aconcelho vivamente a ler!!)

Imports System.Data.SqlClient

    

' Texto de ligação à base de dados

Dim myConnectionString As String = _

"Data Source=.\SQLEXPRESS;AttachDbFilename='C:\myDatabase.mdf';" & _

";Integrated Security=True;User Instance=True"

    

' Comando que irá inserir dados na tabela "MyTable" em que os campos

' "username" e "date" são passados através de parâmetros

Dim SQL As String = "INSERT INTO myTable([username], [date]) VALUES (@username, @date);"

    

' Cria uma nova ligação à base de dados

Dim connection As New SqlConnection(myConnectionString)

    

' Criação do comando indicando a instrução e a ligação

Dim command As New SqlCommand(SQL, connection)

    

' Indicação dos parâmetros que serão inseridos

command.Parameters.Add("@username", SqlDbType.VarChar).Value = "jpaulino"

command.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now

    

' Abre a ligação, executa o comando e guarda em "x" o número de registos inseridos

connection.Open()

    

Dim x As Integer = command.ExecuteNonQuery()

If x < 1 Then

      MessageBox.Show("A operação efectuada não retomou qualquer resultado.")

End If

    

' Fecha a ligação e limpa as variáveis

connection.Close()

connection = Nothing

command = Nothing

    

    

ACTUALIZAR DADOS

    

Imports System.Data.SqlClient

    

' Texto de ligação à base de dados

Dim myConnectionString As String = _

"Data Source=.\SQLEXPRESS;AttachDbFilename='C:\myDatabase.mdf';" & _

";Integrated Security=True;User Instance=True"

    

' Comando que irá actualizar os dados na tabela "MyTable" em que os campos

' "username" e "date" são passados através de parâmetros (o ID é um exemplo de um identificador único)

Dim SQL As String = "UPDATE myTable SET [username] = @username,[date] = @date WHERE [id] = @id"

    

' Cria uma nova ligação à base de dados

Dim connection As New SqlConnection(myConnectionString)

    

' Criação do comando indicando a instrução e a ligação

Dim command As New SqlCommand(SQL, connection)

    

' Indicação dos parâmetros que serão actualizados

command.Parameters.Add("@username", SqlDbType.VarChar).Value = "jpaulino2"

command.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now

command.Parameters.Add("@id", SqlDbType.Int).Value = 4

    

' Abre a ligação, executa o comando e guarda em "x" o número de registos actualizados

connection.Open()

    

Dim x As Integer = command.ExecuteNonQuery()

If x < 1 Then

      MessageBox.Show("A operação efectuada não retomou qualquer resultado.")

End If

    

' Fecha a ligação e limpa as variáveis

connection.Close()

connection = Nothing

command = Nothing

Reparem no pormenor.. este é o SQL:

Dim SQL As String = "INSERT INTO myTable([username], [date]) VALUES (@username, @date);"

e isto é o parametro:

command.Parameters.Add("@username", SqlDbType.VarChar).Value = "jpaulino"

Se repararem a primira entrada da função Add é uma string que ele vai buscar ao SQL e substituir pelo valor indicado...

Espero ter identificado um erro que tenho identificado em muitos programadores...

Cumps


There are two ways to write error-free programs; only the third one works.

Share this post


Link to post
Share on other sites
jpaulino

É o blog aqui do nosso amigo jpaulino :D

LOL, é verdade, mas bem visto Hellblazer ... é importante clarificar e evitar tantos erros por falta de atenção ou pergiça em ler a informação que está disponível.

PS: Acrescentei uma tag a indicar que é um informação! :cheesygrin:

Share this post


Link to post
Share on other sites
Miguel Santana

Como carregar os dados de uma base de dados em SQL Server 2005 para uma datagridview?

Estou a fazendo um projecto em Visual Basic 2005.

:wallbash

Share this post


Link to post
Share on other sites
leonelbeira

oi eu ja vi essa sintaxe,

1. eu estou usando o visual basic 2008 o código é o mesmo?

e se eu usar o wizzard para a conexão como é que seria feito?

agradeço já qualquer resposta?

Share this post


Link to post
Share on other sites
jpaulino

oi eu ja vi essa sintaxe,

1. eu estou usando o visual basic 2008 o código é o mesmo?

e se eu usar o wizzard para a conexão como é que seria feito?

agradeço já qualquer resposta?

Explica lá isso melhor e cria um novo tópico :thumbsup:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.