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

Valadas

[RESOLVIDO] Botão guardar duas tabelas

Recommended Posts

Valadas

Tenho o código para o botão guardar, mas não vai guardar nada...  🤔

Se alguém pudesse dar uma vista de olhos no código e ver o que tenho de errado...  :)

Imports System.Data.OleDb


Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try

            Dim lm As String = "INSERT INTO `Perfil_Jogadores` (`ID_Jogador`, `Nome_jogador`, `Data_nasc`, `Cidade_natal`, `Pais`, `Posicao`, `Ordenado_semanal`, `Estado`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?)"

            ' Inicia uma ligação à base de dados
            Using connection As New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(lm, connection)




                command.Parameters.Add("nome_jogador", OleDbType.VarChar).Value = TextBox2.Text()




                ' If FotoPictureBox.Text.Trim <> String.Empty Then

                'command.Parameters.Add("Foto", OleDbType.).Value = FotoPictureBox.Text
                'Else
                ' command.Parameters.Add("Foto", OleDbType.bipmap).Value = 0
                'End If

                'command.Parameters.Add("Foto", OleDbType.Integer).Value = FotoPictureBox.Text


                If DateTimePicker1.Text.Trim <> String.Empty Then

                    command.Parameters.Add("Data_nasc", OleDbType.Date).Value = DateTimePicker1.Text
                Else
                    command.Parameters.Add("Data_nasc", OleDbType.Date).Value = 0
                End If



                command.Parameters.Add("Cidade_natal", OleDbType.VarChar).Value = TextBox4.Text


                command.Parameters.Add("Pais", OleDbType.VarChar).Value = TextBox5.Text

                command.Parameters.Add("Posicao", OleDbType.VarChar).Value = TextBox6.Text

                If TextBox7.Text.Trim <> String.Empty Then

                    command.Parameters.Add("Ordenado_semanal", OleDbType.Currency).Value = TextBox7.Text
                Else
                    command.Parameters.Add("Ordenao_semanal", OleDbType.Currency).Value = 0
                End If

                'command.Parameters.Add("Ordenado_semanal", OleDbType.VarChar).Value = Ordenado_semanalTextBox.Text

                command.Parameters.Add("Estado", OleDbType.VarChar).Value = TextBox8.Text




                ' Abre a ligação e insere o registo
                connection.Open()
                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível inserir o registo na base de dados!")

                End If

            End Using

        Catch ex As Exception

        End Try
        Try

            Dim lm2 As String = "INSERT INTO `Clubes` (`Clube`) VALUES ( ?)"

            ' Inicia uma ligação à base de dados
            Using connection As New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(lm2, connection)

                'pergunta se quer guardar ou nao
                Dim msg = MsgBox("Pretende guardar o registo? ", MsgBoxStyle.YesNoCancel)
                If msg = MsgBoxResult.Yes Then

                    command.Parameters.Add("Clube", OleDbType.VarChar).Value = TextBox3.Text()

                ElseIf msg = MsgBoxResult.No Then
                End If

                If msg = MsgBoxResult.Cancel Then
                    Form1.Show()
                    Me.Close()

                End If





                ' Abre a ligação e insere o registo
                connection.Open()
                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível inserir o registo na base de dados!")

                End If

            End Using
        Catch ex As Exception

        End Try
    End Sub
End class


RV

Share this post


Link to post
Share on other sites
Hellblazer

nao guarda em nenhuma das duas tabelas?


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

Share this post


Link to post
Share on other sites
Hellblazer

Meu... http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server.html

Lê e tenta descobrir o que estas a fazer de mal... ja te pus esse link a coisa de 4 dias tens de entender como as coisas funcionam... se nao por mais que faças o que os outros te dizem nunca vais aprender o porque das coisas...


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

Share this post


Link to post
Share on other sites
Hellblazer

A difrença e que nos values ele poe @Campo1, @Campo2 e depois nos parameters ele substitui os @campo1 e @campo2 pelas textbox e tu so tens nos values ? e ? e depois tentas substituir no parameter o value ?Campo1 que nao existe pois so existe ?, ?, ? e ?


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

Share this post


Link to post
Share on other sites
Batista15

A difrença e que nos values ele poe @Campo1, @Campo2 e depois nos parameters ele substitui os @campo1 e @campo2 pelas textbox e tu so tens nos values ? e ? e depois tentas substituir no parameter o value ?Campo1 que nao existe pois so existe ?, ?, ? e ?

Nao percebi :s

Share this post


Link to post
Share on other sites
Hellblazer

Dim lm As String = "INSERT INTO `Perfil_Jogadores` (`ID_Jogador`, `Nome_jogador`, `Data_nasc`, `Cidade_natal`, `Pais`, `Posicao`, `Ordenado_semanal`, `Estado`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?)"

            ' Inicia uma ligação à base de dados
            Using connection As New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(lm, connection)




                command.Parameters.Add("nome_jogador", OleDbType.VarChar).Value = TextBox2.Text()

O que ele ta a fazer e alterar o nome do campo para o qual insere... o que ele tem de fazer e no valor inserir  uma key do tipo @Nome_Jogador e depois fazer:

command.Parameters.Add("@Nome_jogador", OleDbType.VarChar).Value = TextBox2.Text()


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

Share this post


Link to post
Share on other sites
Valadas

O que ele ta a fazer e alterar o nome do campo para o qual insere... o que ele tem de fazer e no valor inserir  uma key do tipo @Nome_Jogador e depois fazer:

command.Parameters.Add("@Nome_jogador", OleDbType.VarChar).Value = TextBox2.Text()

Mas isso é o que eu tenho e não grava!!!!  :wallbash:


RV

Share this post


Link to post
Share on other sites
jpaulino

Mas isso é o que eu tenho e não grava!!!!  :wallbash:

Try

    ' código

Catch ex As Exception

End Try

Sem nada na exception só se utiliza quando se quer que o erro (caso aconteça) seja ignorado. É como um "On Error Resume Next".

Agora NUNCA se faz quando se está a desenvolver, porque qualquer erro que a aplicação dê, não se sabe o resultado.

Coloca lá uma MessageBox.Show(ex.message) e diz qual é o erro que está a dar.

Share this post


Link to post
Share on other sites
jpaulino

"Não foi fornecido nenhum valor para um ou mais parâmetros necessários"

:P :) :P

problema resolvido...  :D

Ou seja, estavas a definir na instrução SQL 8 campos e a adicionar 7, certo ?

Share this post


Link to post
Share on other sites
Valadas

Ou seja, estavas a definir na instrução SQL 8 campos e a adicionar 7, certo ?

Nem mais...  :P


RV

Share this post


Link to post
Share on other sites
esquima

como te disse no outro dia, investiga mais um bocado sobre sql, as teus erros normalmente consistem nas instrucoes de sql

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.