Jump to content
marrokino

update dados sql via vb

Recommended Posts

marrokino

boa tarde.

preciso aqui de uma ajuda. consegui meter isto a fazer o update num programa á parte que fiz, mas quando passei para aquele que precisava mesmo ele não funciona. Quando chego á parte de fazer o update, ele actualiza na datagrid mas não grava.

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click



        Strsql = "Update video set ncliente = '" & NclienteTextBox.Text & "'," _
        & "cnome='" & CnomeTextBox.Text & "'," _
        & "cmorada='" & CmoradaTextBox.Text & "'," _
        & "cdatadenascimento='" & CdatanascimentoTextBox.Text & "'," _
        & "ctelefone='" & CtelefoneTextBox.Text & "'," _
        & "ccontribuinte='" & CcontribuinteTextBox.Text & "'," _
        & "cemail='" & CemailTextBox.Text & "'," _
        & "cpassword='" & CpasswordTextBox.Text & "'," _
        & "cutilizador='" & CutilizadorTextBox.Text & "'," _
        & "where ncliente= " & NclienteTextBox.Text & ""
        Dim sqlcmd As New SqlCommand
        Dim aConn As SqlConnection
        sqlcmd.CommandText = Strsql


        Try
            aConn.Open()
            sqlcmd.ExecuteNonQuery()
            aConn.Close()
            ' Success
        Catch ex As Exception
            ' Handle error
            MsgBox("updated")
        End Try



    End Sub

agradecia uma ajudinha, e qualquer coisa perguntem. obrigado desde já.

Share this post


Link to post
Share on other sites
Andrepereira9

Nesta linha não te faltam umas plicas ??

& "where ncliente= " & NclienteTextBox.Text & ""

Assim

& "where ncliente= '" & NclienteTextBox.Text & "'"

E estas a mostrar mensagem de  "updated" quando acontece um erro??


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
big_dady

nos campos da base de dados como por exemplo,

ncliente, tens que colocar isto [ncliente] = " & "informaçao" & "

senão ele nao funfa.

aconselho a usares funçoes para abrir a base de dados = abrebd e para fecharbd

e uma variavel global para ligacao a bd .

assim basta criares o oledb.oledbcommand e executares o cmd.

:P

se quiseres mando-te exemplos. basta PM


Yours, Bid_dady

Share this post


Link to post
Share on other sites
marrokino

pronto, consegui com que aquilo mude os dados na datagrid, agora tenho o problema de não não guardar as alterações.

o erro é éste: "Update requires a valid UpdateCommand when passed DataRow collection with modified rows".

Já estou farto de andar a procurar na net e nada resulta.

obrigado a quem se deu ao trabalho de ajudar.

Share this post


Link to post
Share on other sites
Caça

Estás a usar Wizards em simultâneo com o código? Não é recomendável...


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Caça

Tipo, adicionas um DataSource e depois arrastas os campos para o form


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
marrokino

sim estou, achas que é melhor mudar?

é que o único problema é isso não gravar.

Share this post


Link to post
Share on other sites
Caça

Na minha opinião, deves optar por um deles. Isso funciona com ambas as coisas, mas já é preciso saber o que se está a fazer.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
marrokino

é que eu faço o breakpoint naquilo, e ele chega á parte onde o mando pra gravar e dá me o erro que referi acima.

Share this post


Link to post
Share on other sites
marrokino

 Dim connection As New SqlClient.SqlConnection
        Dim command As New SqlCommand
        Dim adaptor As New SqlDataAdapter
        Dim dataset As New DataSet

        'Dim Strsql As String
        connection.ConnectionString = ("Data Source=LOL-PC\SQLEXPRESS;Initial Catalog=video;Integrated Security=True")
        command.CommandText = "Update video set [ncliente] = '" & NclienteTextBox.Text & "'," _
        & "[cnome]='" & CnomeTextBox.Text & "'," _
        & "[cmorada}='" & CmoradaTextBox.Text & "'," _
        & "[cdatadenasciment}o='" & CdatanascimentoTextBox.Text & "'," _
        & "[ctelefone}='" & CtelefoneTextBox.Text & "'," _
        & "[ccontribuinte}='" & CcontribuinteTextBox.Text & "'," _
        & "[cemail}='" & CemailTextBox.Text & "'," _
        & "[cpassword}='" & CpasswordTextBox.Text & "'," _
        & "[cutilizador}='" & CutilizadorTextBox.Text & "'," _
        & "where [ncliente]= " & NclienteTextBox.Text & ""

        command.Connection = connection

        adaptor.UpdateCommand = command

na última linha.

Share this post


Link to post
Share on other sites
Caça

Troca

adaptor.UpdateCommand = command

por

command.ExecuteNonQuery()


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
marrokino

apareceu me isto logo que corre essa linha: "The identifier that starts with 'cmorada}='morada2 ',[cdatadenasciment}o='2011-05-20',[ctelefone}='123',[ccontribuinte}='23',[cemail}='3',[cpassword}='teste2',[c' is too long. Maximum length is 128."

esse dados são os que estão associados ao cliente.

Share this post


Link to post
Share on other sites
Caça

[cmorada}

Estás a fechar com } em vez de ]


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
marrokino

e era em todos, que burrice a minha.

ora bem, depois disso aparece isto: "Incorrect syntax near the keyword 'where'."

isto está me a queimar bem o cérebro, ando ás uns 4 dias de volta disto.

Share this post


Link to post
Share on other sites
Caça

& "[cutilizador]='" & CutilizadorTextBox.Text & "'," _

Tens uma virgula a mais, seria assim

& "[cutilizador]='" & CutilizadorTextBox.Text & "' " _


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Caça

[cmorada}

Estás a fechar com } em vez de ]

Continuas com o problema dos parênteses.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
marrokino

ahahah, foi mesmo, mas pronto, esse tá resolvido. agora diz que não consegue identificar a coluna ncliente "Cannot update identity column 'ncliente'."

pelo que entendi do erro, diz que não pode actualizar a coluna de identificação. considera-se o where ou o set de identificação?

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

×
×
  • Create New...

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.