none
DataAdapter - Access e Parametr RRS feed

  • Pergunta

  • Entao,  estou tentando usar access como bd com aspnet pelka primeira vez, e estou com problemas ao passar parametros as minhas query sql

    Acessei este link, e mesmo com ele ainda retorna o mesmo erro http://msdn.microsoft.com/en-us/library/bbw6zyha%28VS.71%29.aspx

    Erro : Nenhum valor foi fornecido para um ou mais parâmetros necessários.

     

           Dim vSegmento As String = Request.QueryString("Segmento")
    If vSegmento = Nothing Or vSegmento = "" Then vSegmento = "8"


    '####################################################################################################################
    Dim oConn As New OleDbConnection(Dados.StringConexao)

    Dim vSql As String = "SELECT * FROM Produtos WHERE Segmento = ?"
    Dim da As OleDbDataAdapter = New OleDbDataAdapter
    Dim oCmd As OleDbCommand = New OleDbCommand(vSql, oConn)

    da.SelectCommand = oCmd

    oCmd.Parameters.Add("@Segmento", OleDbType.VarChar, 3).Value = vSegmento

    Dim ds As DataSet = New DataSet
    da.Fill(ds)

     

     

    Erro : Nenhum valor foi fornecido para um ou mais parâmetros necessários.

     

    Já tentei de diversar maneiras, com @ sem @ com os parametros @Parametro e com o simbolo '?' e nao consegui nada, ele nao retorna o valor da variavel para o parametro de quary

    quarta-feira, 24 de março de 2010 18:38

Respostas

Todas as Respostas

  •         Dim vSql As String = "SELECT * FROM Produtos WHERE Segmento = @Segmento"

            Dim da As OleDbDataAdapter = New OleDbDataAdapter

            Dim oCmd As OleDbCommand = New OleDbCommand(vSql, oConn)

            oCmd.Parameters.Add("@Segmento", OleDbType.VarChar, 3).Value = vSegmento

            da.SelectCommand = oCmd

            Dim ds As DataSet = New DataSet

            da.Fill(ds)

     

    //veja se funciona!


    Tornar o simples complicado é facil, tornar o complicado simples é criatividade, vontade e conhecimento
    quarta-feira, 24 de março de 2010 19:50
  • Parou de dar erro,

    Mais agora ele retorna todos os registro do bd, como se estivesse ignorando a clausula where

     

    Muito obrigado pela atenção, to atrasado com o trampo aqui rs

    quarta-feira, 24 de março de 2010 19:59
  • Rodrigo,

    Como você está utilizando OleDb, da forma que você estava fazendo já estava certo (com o ponto de interrogação)...

    Sugiro que você volte do jeito que estava antes, mas, nomeie o parâmetro sem o arroba inicial...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 26 de março de 2010 12:53
    Moderador
  • Olá Andre, mto obrigado pela resposta

     

    Meu código está com a interrogação e valor fixo de parametro mesmo assim ele diz q Nenhum valor foi fornecido para um ou mais parâmetros necessários.

     

    Segue o Código

     


            Dim vSegmento As String = Request.QueryString("Segmento")
            If vSegmento = Nothing Then vSegmento = "8"

            Dim oConn As New OleDbConnection(Dados.StringConexao)

            Dim vSql As String = "SELECT nome, preco, impeq, segmento FROM Produtos WHERE Segmento=?"
            Dim da As OleDbDataAdapter = New OleDbDataAdapter
            Dim oCmd As OleDbCommand = New OleDbCommand(vSql, oConn)

            da.SelectCommand = oCmd

            oCmd.Parameters.Add("Segmento", OleDbType.VarChar, 3).Value = 8

           '''' Tentei assime  tbm n deu

           '''''da.SelectCommand.Parameters.Add("Segmento", OleDbType.VarChar, 3).Value = 8
            Dim ds As DataSet = New DataSet
            da.Fill(ds)

    O erro dá na linha da.fill(ds)

     

    PS: Este código está em uma aplicacao web (asp.net)

    sexta-feira, 26 de março de 2010 17:24
  • Rodrigo,

    Na sua consulta, tente deixar os nomes dos campos (nome, preco, etc) exatamente igual ao que está no banco (inclusive a questão de maiúsculas e minúsculas)... Tenta aí e fala pra gente se deu certo...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    terça-feira, 30 de março de 2010 17:23
    Moderador
  • Ae Andre, mto obrigado, finalmente funcionou!

     

    Tava com com problemas campo Segmento o qual é segmento com S miniusculo, estou me batendo aqui por nao ter visto isso, mto obrigado pela ajuda!

    quarta-feira, 31 de março de 2010 16:52