Rodrigo1 0 Denunciar post Postado Março 23, 2010 e ae pessoal, to tentando preencher um dataset com um OleDbDataAdapter, e nao consigo passa um simples parametro, como posso arrumar isso por favor, perdi umas 4 horas de trampo já nesse problema, agradeço se puderem me ajudar Dim da As New OleDbDataAdapter("SELECT * FROM Produtos WHERE Segmento=@Segmento", Dados.StringConexao) da.SelectCommand.Parameters("@Segmento").Value = vSegmento Ja tentei com new oledbparameter e de vaaaarios outros jeitos, n sei mais o q fazer, mto obrigado pela atencao Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 24, 2010 De uma olhada: http://msdn.microsoft.com/en-us/library/bbw6zyha%28VS.71%29.aspx Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 24, 2010 Opa, valeu a resposta, mto bom o tutorial, até entendi algumas coisas a mais porem ainda nao consigo receber o valor do parametro 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. nao sei mais o q tentar aqui, mto obrigado pela atencao Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 24, 2010 Já tentei assim tbm e nao deu, tá dificil Dim oConn As New OleDbConnection(Dados.StringConexao) 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) Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 24, 2010 Sua variável vSegmento tem algo? Que banco esta usando? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 25, 2010 A minha variavel pega o querystring Segmento, e o banco de dados q estou usando é access. segue o codigo com a atribuicao da variavel 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 * 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) Eu testei atribuir o valor direto no parametro e me retornou todos os dados do BD como se estivesse ignorando o where: oCmd.Parameters.Add("@Segmento", OleDbType.VarChar, 3).Value = "8" Mto obrigado pelas respostas Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 25, 2010 Coloque o: oCmd.Parameters.Add("@Segmento", OleDbType.VarChar, 3).Value = vSegmen Depois do: da.SelectCommand = oCmd Continue alimentando os parâmetro de forma fixa para testes. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 25, 2010 Coloque o: oCmd.Parameters.Add("@Segmento", OleDbType.VarChar, 3).Value = vSegmen Depois do: da.SelectCommand = oCmd Continue alimentando os parâmetro de forma fixa para testes. Abraços... Continua ignorando a clausula WHERE da minha query, e qdo tento com a seguinte linha de codigo ele diz q faltou atribuir um valor ao parametro Dim vSql As String = "SELECT * FROM Produtos WHERE Segmento=?" Esta maneira com a interrogacao estava no forum MSDN do link que você me passou Quintelab, mais nem 1 das 2 funciona,nao consigo entender o problema Vou postar minha sub page_load para q possa visualizar meu codigo inteiro, peguei a base do codigo da net Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 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 * FROM Produtos WHERE Segmento=@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) Dim objPds As PagedDataSource = New PagedDataSource() Dim CurPage As Integer Dim intCount As Integer = ds.Tables(0).Rows.Count If intCount = 0 Then panelCategorias.Visible = False lblNoCategorias.Text = "<br><font>Não ha registros</font>" lblNoCategorias.Visible = True Else lblNoCategorias.Visible = False End If objPds.DataSource = ds.Tables(0).DefaultView objPds.AllowPaging = True objPds.PageSize = 8 If Not Request.QueryString("p") Is Nothing Then CurPage = CInt(Request.QueryString("p")) Else CurPage = 0 End If objPds.CurrentPageIndex = CurPage ''-1 lblCurrentPage.Text = "Page: " + CurPage.ToString() If Not objPds.IsFirstPage Then lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?p=" + Convert.ToString(CurPage - 1) End If For i = 1 To objPds.PageCount PaginacaoLiteral.Text = PaginacaoLiteral.Text & "<a href='" + Request.CurrentExecutionFilePath + "?p=" + Convert.ToString(i) + "'>" & i & "</a> | " Next If Not objPds.IsLastPage Then lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?p=" + Convert.ToString(CurPage + 1) End If gridCategorias.DataSource = objPds gridCategorias.DataBind() End Sub Compartilhar este post Link para o post Compartilhar em outros sites