Usuário com melhor resposta
DataAdapter - Access e Parametr

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
Respostas
-
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- Marcado como Resposta AndreAlvesLimaModerator quarta-feira, 31 de março de 2010 20:24
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 -
-
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 -
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)
-
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- Marcado como Resposta AndreAlvesLimaModerator quarta-feira, 31 de março de 2010 20:24
-