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

fed07

[RESOLVIDO] SQL INSERT INTO

Recommended Posts

fed07

Boas, é assim eu estou a tentar inserir dados numa tabela e o código que estou a utilizar é o seguinte:

Imports System.Data.OleDb
Public Class registo
    Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "_
& System.AppDomain.CurrentDomain.BaseDirectory & "bd2.mdb;")
    Dim strSQL As String = "INSERT INTO Utilizadores (Nome_conta, Password, Email) VALUES (@Nome, @Pass, @Mail)"
    Dim cmd As New OleDbCommand(strSQL, conn)

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
            conn.Close()
            cmd.Parameters.Add("@Nome", OleDbType.LongVarWChar).Value = txtuser.Text
            cmd.Parameters.Add("@Pass", OleDbType.LongVarWChar).Value = txtpass.Text
            cmd.Parameters.Add("@Mail", OleDbType.LongVarWChar).Value = txtmail.Text
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
            cmd.Parameters.Clear()

O problema é que ele ao chegar ao ExecuteNonQuery dá erro e diz que é erro de syntax na instrução insert into

Eu já verifiquei os nomes dos campos, das tabelas já verifiquei tudo e tá tudo bem.

Se poderem ajudar, agradeço

Cumps,

FeD07

Share this post


Link to post
Share on other sites
fed07

Dá o mesmo erro, já tentei muita coisa, até trocar os txt.text por "texto" e mesmo assim dá o mesmo erro, ele para sempre no executenonquery :S

Share this post


Link to post
Share on other sites
bioshock

O problema está mesmo na syntax como te diz.

Experimenta antes:

"INSERT INTO Utilizadores ([Nome_Conta], [Password], [Email]) VALUES (@Nome, @Pass, @Mail);"

Share this post


Link to post
Share on other sites
fed07

Resultou! Obrigado!

Já agora só para ficar a saber, porque o uso dos []?

Cumps

Share this post


Link to post
Share on other sites
ribeiro55

Password é uma palavra reservada.

Ao envolveres uma palavra entre [ ] estás a indicar ao parser para ignorar o significado reservado.

Nesse caso faz com que ignore o significado reservado de Password e que a trate como o nome de um objecto no alvo da query.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

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.