none
Erro no Update RRS feed

  • Pergunta

  • Galera to usando um BD access e qnd tento fazer o Update me retorna a mensagem "Nenhum valor foi fornecido para um ou mais parametros necessarios" Alguem tem alguma ideia do que está errado string oldus; oldus = uss; string pri = cmb_privilegios.Text.Substring(0, 1); int priv = int.Parse(pri); //char priv = char.Parse(cmb_privilegios.Text); string us = txt_login.Text, se = txt_senha.Text; OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd_camera.mdb"); OleDbCommand selectCmd = new OleDbCommand(); try { Conn.Open(); selectCmd.Connection = Conn; selectCmd.CommandText = ("UPDATE Login SET [User]= ?, Senha=?, Privilegios=? WHERE User = @oldus"); //UPDATE empregados set nome='João da Silva',cidade='São Paulo' where codigo_empregado=2 selectCmd.Parameters.Add("@[User]", OleDbType.VarChar); selectCmd.Parameters.Add("@Senha", OleDbType.VarChar); selectCmd.Parameters.Add("@Privilegios", OleDbType.Numeric, 1); selectCmd.Parameters["@[User]"].Value = us; selectCmd.Parameters["@Senha"].Value = se; selectCmd.Parameters["@Privilegios"].Value = priv; selectCmd.ExecuteNonQuery(); //selectCmd.Dispose(); Conn.Close(); MessageBox.Show("Dados Alterados com sucesso!"); } catch (Exception E) { MessageBox.Show(E.Message.ToString()); }
    quarta-feira, 26 de outubro de 2011 22:29

Respostas

  •  

                string connectString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\pcfviana\\Documents\\Teste.accdb";
                string strSQL = "UPDATE tbTeste set Nome = @Nome, Email = @Email where Codigo = @Codigo";
                OleDbConnection conexao = new OleDbConnection(connectString);
                OleDbCommand cmd = new OleDbCommand(strSQL, conexao);
    
                cmd.Parameters.Add("@Nome", OleDbType.VarChar).Value = "nome alterado";
                cmd.Parameters.Add("@Email", OleDbType.VarChar).Value = "email alterado";
                cmd.Parameters.Add("@Codigo", OleDbType.Integer).Value = 2;
    
                conexao.Open();
                cmd.ExecuteNonQuery();
                conexao.Close();
    

    Veja que informo todos os parametros.

    No seu caso você adicionou apenas os parametros Senha e Privilegios. Tem que criar e adicionar o valor dos outros. Procure fazer: "UPDATE Login SET User = @User, Senha=@Senha, Privilegios= @Privilegios WHERE User = @oldus". Adicione os parametros como no exemplo que fiz.


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    quarta-feira, 26 de outubro de 2011 22:58

Todas as Respostas

  •  

                string connectString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\pcfviana\\Documents\\Teste.accdb";
                string strSQL = "UPDATE tbTeste set Nome = @Nome, Email = @Email where Codigo = @Codigo";
                OleDbConnection conexao = new OleDbConnection(connectString);
                OleDbCommand cmd = new OleDbCommand(strSQL, conexao);
    
                cmd.Parameters.Add("@Nome", OleDbType.VarChar).Value = "nome alterado";
                cmd.Parameters.Add("@Email", OleDbType.VarChar).Value = "email alterado";
                cmd.Parameters.Add("@Codigo", OleDbType.Integer).Value = 2;
    
                conexao.Open();
                cmd.ExecuteNonQuery();
                conexao.Close();
    

    Veja que informo todos os parametros.

    No seu caso você adicionou apenas os parametros Senha e Privilegios. Tem que criar e adicionar o valor dos outros. Procure fazer: "UPDATE Login SET User = @User, Senha=@Senha, Privilegios= @Privilegios WHERE User = @oldus". Adicione os parametros como no exemplo que fiz.


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    quarta-feira, 26 de outubro de 2011 22:58
  • string oldus; oldus = uss; string pri = cmb_privilegios.Text.Substring(0, 1); int priv = int.Parse(pri); //char priv = char.Parse(cmb_privilegios.Text); string us = txt_login.Text, se = txt_senha.Text; OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd_camera.mdb"); OleDbCommand selectCmd = new OleDbCommand(); try { Conn.Open(); selectCmd.Connection = Conn; selectCmd.CommandText = ("UPDATE Login SET [User]= ?, Senha=?, Privilegios=? WHERE [User] = oldus"); //UPDATE empregados set nome='João da Silva',cidade='São Paulo' where codigo_empregado=2 //selectCmd.Parameters.Add("@[User]", OleDbType.VarChar); //selectCmd.Parameters.Add("@Senha", OleDbType.VarChar); //selectCmd.Parameters.Add("@Privilegios", OleDbType.Numeric, 1); selectCmd.Parameters["?[User]"].Value = us; selectCmd.Parameters["?Senha"].Value = se; selectCmd.Parameters["?Privilegios"].Value = priv; selectCmd.ExecuteNonQuery(); //selectCmd.Dispose(); Conn.Close(); MessageBox.Show("Dados Alterados com sucesso!"); } catch (Exception E) { MessageBox.Show(E.Message.ToString()); } Postando novamente o codigo ........ bom os parametros estou passando todos ja passei de diversas formas... com as variaveis ao inves do ?... com o nome da ? + variavel .... mais embaixo onde está comentado //selectCmd.Parameters.Add("@[User]", OleDbType.VarChar); ... ja tirei de comentario ...... ainda sim continua dando erro alguma ideia?
    • Editado diogo1z segunda-feira, 31 de outubro de 2011 18:32
    sexta-feira, 28 de outubro de 2011 17:55
  • Edita o teu post e usa o botao Inserir, que fica proximo do botao com as letras HTML.

    Fica facil de ler o teu codigo...


    One word frees us of all the weight and pain of life: that word is love.
    sexta-feira, 28 de outubro de 2011 18:57
    Moderador
  • Olá Paulo,

    por acaso teria alguma recomendação para as linha abaixo. Ao executar tem aparecido na linha Command.ExecuteNonQuery() a seguinte mensagem:"Nenhum valor foi fornecido para um ou mais parametros necessarios" . Obrigado.

     

    PrivateSubalterar()

           

    DimConn AsNewOleDbConnection(My.Settings.SIADSConecte)

           

    DimCommand AsNewOleDbCommand


           

    DimQuery AsString= ""


            Query =

    "UPDATE tbCadPessoaJuridica SET categoriaPJ=@categoriaPJ, dataCadastro=@dataCadastro, razaoSocial=@razaoSocial, nomeFant=@nomeFant, socioProp=@socioProp, cpf=@cpf, rg=@rg, dataFundacao=@dataFundacao, cnpj=@cnpj, ie=@ie, dtInCont=@dtInCont, dtTerCont=@dtTerCont, ativa=@ativa, codCnae=@codCnae, observacao=@observacao WHERE codRazaoSocial=@codRazaoSocial"


            Command.Connection = Conn

            Command.CommandText = Query

            selcom.Parameters.Add(

    "@categoriaPJ", OleDbType.VarChar, 100).Value = rblCategoriaPJ.Text

            selcom.Parameters.Add(

    "@dataCadastro", OleDbType.VarChar, 100).Value = txtDataCadas.Text

            selcom.Parameters.Add(

    "@razaoSocial", OleDbType.VarChar, 100).Value = txtRazao.Text

            selcom.Parameters.Add(

    "@nomeFant", OleDbType.VarChar, 100).Value = txtFantasia.Text

            selcom.Parameters.Add(

    "@socioProp", OleDbType.VarChar, 100).Value = txtSocio.Text

            selcom.Parameters.Add(

    "@cpf", OleDbType.VarChar, 100).Value = txtCPFsocio.Text

            selcom.Parameters.Add(

    "@rg", OleDbType.VarChar, 100).Value = txtRGsocio.Text

            selcom.Parameters.Add(

    "@dataFundacao", OleDbType.VarChar, 100).Value = txtDataFunda.Text

            selcom.Parameters.Add(

    "@cnpj", OleDbType.VarChar, 100).Value = txtCNPJ.Text

            selcom.Parameters.Add(

    "@ie", OleDbType.VarChar, 100).Value = txtIE.Text

            selcom.Parameters.Add(

    "@dtInCont", OleDbType.VarChar, 100).Value = txtDataIniContrato.Text

            selcom.Parameters.Add(

    "@dtTerCont", OleDbType.VarChar, 100).Value = txtDataFinalContrato.Text

            selcom.Parameters.Add(

    "@ativa", OleDbType.VarChar, 100).Value = rblCondicaoAtual.Text

            selcom.Parameters.Add(

    "@codCnae", OleDbType.VarChar, 100).Value = ddlCNAE.Text

            selcom.Parameters.Add(

    "@observacao", OleDbType.VarChar, 100).Value = txtObservacao.Text

            selcom.Parameters.Add(

    "@codRazaoSocial", OleDbType.VarChar, 100).Value = gvwPJ.SelectedRow.Cells(1).Text

            Conn.Open()

            Command.ExecuteNonQuery()

            Conn.Dispose()

            Label1.Text =

    "Dados gravados com sucesso"


            rblCategoriaPJ.Focus()

            desabilita()

            cargaGRID()

     

    EndSub

    terça-feira, 15 de maio de 2012 00:20
  • resolvido o problema:
    De:selcom.Parameters Para:Command.Parameters
    • Sugerido como Resposta Wilson Boris terça-feira, 15 de maio de 2012 02:16
    terça-feira, 15 de maio de 2012 02:16