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

Hellblazer

Inserir Dados em uma Base de dados SQL

7 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hellblazer,

Queres que passe este artigo para a wiki e fazes tu ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora