Valadas Posted March 6, 2009 at 11:20 PM Report Share #248839 Posted March 6, 2009 at 11:20 PM Boas pessoal, eu quero actualizar mas o código que tenho diz a seguinte mensagem "Não foi fornecido nenhum valor para um ou mais parâmetros necessários". Eu sei que é capaz de ser um erro básico mas a verdade é que não estou a ver onde está o erro! Tenho o seguinte código: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Try Dim lm As String = "UPDATE Perfil_Jogadores SET Nome_jogador=?,Data_nasc=?,Cidade_natal=?,Pais=?,Posicao=?,Ordenado_semanal=?,Estado=? where [iD_Jogador]=?" ' 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 = TextBox1.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 MessageBox.Show(ex.Message) End Try Try Dim lm2 As String = "UPDATE Clubes SET Clube=?" ' 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 If ComboBox1.Text.Trim <> String.Empty Then command.Parameters.Add("Clube", OleDbType.VarChar).Value = ComboBox1.Text Else command.Parameters.Add("Clube", OleDbType.VarChar).Value = 0 End If '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 RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 6, 2009 at 11:22 PM Report Share #248842 Posted March 6, 2009 at 11:22 PM Falta-te definir o ID do jogador (ID_Jogador) Link to comment Share on other sites More sharing options...
Valadas Posted March 6, 2009 at 11:23 PM Author Report Share #248844 Posted March 6, 2009 at 11:23 PM Falta-te definir o ID do jogador (ID_Jogador) Já tinha definido e disse exactamente o mesmo erro! 😉 RV Link to comment Share on other sites More sharing options...
Batista15 Posted March 7, 2009 at 10:01 AM Report Share #248872 Posted March 7, 2009 at 10:01 AM Boas pessoal, eu quero actualizar mas o código que tenho diz a seguinte mensagem "Não foi fornecido nenhum valor para um ou mais parâmetros necessários". Eu sei que é capaz de ser um erro básico mas a verdade é que não estou a ver onde está o erro! Tenho o seguinte código: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Try Dim lm As String = "UPDATE Perfil_Jogadores SET Nome_jogador=?,Data_nasc=?,Cidade_natal=?,Pais=?,Posicao=?,Ordenado_semanal=?,Estado=? where [iD_Jogador]=?" ' 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 = TextBox1.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 MessageBox.Show(ex.Message) End Try Try Dim lm2 As String = "UPDATE Clubes SET Clube=?" ' 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 If ComboBox1.Text.Trim <> String.Empty Then command.Parameters.Add("Clube", OleDbType.VarChar).Value = ComboBox1.Text Else command.Parameters.Add("Clube", OleDbType.VarChar).Value = 0 End If '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 Acontece-me o mesmo 😉 Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 10:19 AM Report Share #248873 Posted March 7, 2009 at 10:19 AM Motra lá como está com agora Link to comment Share on other sites More sharing options...
debliu Posted March 7, 2009 at 10:58 AM Report Share #248876 Posted March 7, 2009 at 10:58 AM tens a certeza que não tens algum campo na tabela que não esteja aí?? o ID_jogador é automático??? http://bolachas4.blogspot.com Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 11:08 AM Author Report Share #248879 Posted March 7, 2009 at 11:08 AM tens a certeza que não tens algum campo na tabela que não esteja aí?? o ID_jogador é automático??? sim não tenho! e o id é automático sim... RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 11:46 AM Report Share #248886 Posted March 7, 2009 at 11:46 AM sim não tenho! e o id é automático sim... Então se o ID é automático, como queres que o software adivinhe ? Tens de saber qual o ID do campo que vais actualizar. Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 11:54 AM Author Report Share #248889 Posted March 7, 2009 at 11:54 AM Então se o ID é automático, como queres que o software adivinhe ? Tens de saber qual o ID do campo que vais actualizar. Então assim seria colocar o id no select certo!? Diz o mesmo... RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 12:00 PM Report Share #248894 Posted March 7, 2009 at 12:00 PM Se tu queres actualizar um registo, tens de saber qual o registo que vais actualizar e indicar o ID ou outro campo unico. Neste caso defines como parametro Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 12:08 PM Author Report Share #248895 Posted March 7, 2009 at 12:08 PM Se tu queres actualizar um registo, tens de saber qual o registo que vais actualizar e indicar o ID ou outro campo unico. Neste caso defines como parametro Dim lm As String = "UPDATE Perfil_Jogadores SET ID_Jogador=?,Nome_jogador=?,Data_nasc=?,Cidade_natal=?,Pais=?,Posicao=?,Ordenado_semanal=?,Estado=? where [iD_Jogador]=?" If TextBox2.Text.Trim <> String.Empty Then command.Parameters.Add("ID_Jogador", OleDbType.Integer).Value = TextBox2.Text Else command.Parameters.Add("ID_Jogador", OleDbType.Integer).Value = 0 End If Isso já eu tinha pensado e testado. EU venho só ao fórum em último caso! Defeni como parâmetro mas continua a dizer o mesmo!! RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 03:20 PM Report Share #248940 Posted March 7, 2009 at 03:20 PM Isso já eu tinha pensado e testado. EU venho só ao fórum em último caso! Defeni como parâmetro mas continua a dizer o mesmo!! Mostra lá o código completo ... Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 04:25 PM Author Report Share #248968 Posted March 7, 2009 at 04:25 PM Mostra lá o código completo ... Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Try Dim connection As OleDbConnection Dim lm As String = "UPDATE Perfil_Jogadores SET ID_Jogador=?,Nome_jogador=?,Data_nasc=?,Cidade_natal=?,Pais=?,Posicao=?,Ordenado_semanal=?,Estado=? where [iD_Jogador]=?" ' Inicia uma ligação à base de dados connection = New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd) ' Define o comando e os parâmetros Dim command As New OleDbCommand(lm, connection) If TextBox2.Text.Trim <> String.Empty Then command.Parameters.Add("ID_Jogador", OleDbType.Integer).Value = TextBox2.Text Else command.Parameters.Add("ID_Jogador", OleDbType.Integer).Value = 0 End If command.Parameters.Add("Nome_jogador", OleDbType.VarChar).Value = TextBox1.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 connection.Close() Catch ex As Exception MessageBox.Show(ex.Message) End Try Try Dim connnection As OleDbConnection Dim lm2 As String = "UPDATE Clubes SET Clube=?" ' Inicia uma ligação à base de dados connnection = New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd) ' Define o comando e os parâmetros Dim command As New OleDbCommand(lm2, connnection) 'pergunta se quer guardar ou nao Dim msg = MsgBox("Pretende guardar o registo? ", MsgBoxStyle.YesNoCancel) If msg = MsgBoxResult.Yes Then If ComboBox1.Text.Trim <> String.Empty Then command.Parameters.Add("Clube", OleDbType.VarChar).Value = ComboBox1.Text Else command.Parameters.Add("Clube", OleDbType.VarChar).Value = 0 End If '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 connnection.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 connnection.Close() Catch ex As Exception End Try End Sub RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 04:35 PM Report Share #248971 Posted March 7, 2009 at 04:35 PM Em Access os parametros têm de ser definidos na mesma ordem que são indicados. Assim, o id do jogador tem de estar em último lugar, ou seja, é o último parametro a ser indicado. Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 04:37 PM Author Report Share #248972 Posted March 7, 2009 at 04:37 PM Em Access os parametros têm de ser definidos na mesma ordem que são indicados. Assim, o id do jogador tem de estar em último lugar, ou seja, é o último parametro a ser indicado. Como no php? 😉 RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 04:40 PM Report Share #248975 Posted March 7, 2009 at 04:40 PM Como no php? 😉 Não sei ... mas o que é que não entendeste ? Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 04:48 PM Author Report Share #248978 Posted March 7, 2009 at 04:48 PM Não sei ... mas o que é que não entendeste ? Corrige-me se estiver enganado. Pelo que entendi os parâmetros ficam por esta ordem: Estado; Ordenado_semanal; Posicao; Pais; Cidade_natal; Data_nasc; Nome_jogador; ID_Jogador? Ao contrário da query!??!? RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 04:52 PM Report Share #248980 Posted March 7, 2009 at 04:52 PM Ao contrário da query!??!? Não, não é ao contrário da query !!! Se tu dizes: "Nome_jogador=?,Data_nasc=?,Cidade_natal=?, ... " Tens depois de os indicar na mesma sequência: Nome_jogador Data_nasc Cidade_natal ... até ao ID Link to comment Share on other sites More sharing options...
Valadas Posted March 7, 2009 at 04:56 PM Author Report Share #248982 Posted March 7, 2009 at 04:56 PM Não, não é ao contrário da query !!! Se tu dizes: "Nome_jogador=?,Data_nasc=?,Cidade_natal=?, ... " Tens depois de os indicar na mesma sequência: Nome_jogador Data_nasc Cidade_natal ... até ao ID Mas o meu ID está em primeiro... Dim lm As String = "UPDATE Perfil_Jogadores SET ID_Jogador=?,Nome_jogador=?,Data_nasc=?,Cidade_natal=?,Pais=?,Posicao=?,Ordenado_semanal=?,Estado=? where [iD_Jogador]=?" fica em último e problema resolvido? RV Link to comment Share on other sites More sharing options...
jpaulino Posted March 7, 2009 at 05:22 PM Report Share #248983 Posted March 7, 2009 at 05:22 PM Mas o meu ID está em primeiro... Não tinha visto isso, mas tu queres também alterar o id do jogador? Isso normalmente não se faz e o ID é apenas usado e nunca alterado. Retira lá o ID do inicio e deixa-o só no fim. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now