Faccruz 0 Denunciar post Postado Março 23, 2009 Tenho essa página onde seleciono o tipo da busca (por CPF ou Nota Fiscal), com CPF está funcionando perfeitamente, mas se eu seleciono a Nota Fiscal aparecem 2 campos onde um é o número da NF e um DropDownList com uma lista de cidades onde possui as lojas instaladas. Se eu deixo apenas o campo NF para buscar, funciona normal, porém se incluir o like na instrução SQL não me retorna nenhum valor, mas tbm nenhum erro, somente não exibe a Grid, realizei a mesma busca no MySQL Query Browser e traz o resultado desejado, mas na página não exibe. Imports MySql.Data.MySqlClient Imports System.Data Partial Public Class _Default Inherits System.Web.UI.Page Dim ConMYSQL As New MySqlConnection("server=LocalHost;user id=root;password=cyb04ibm;database=SiteCybelar") Dim Index As Integer, Selecionado As String Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then If rbtnList.SelectedIndex = 0 Then pnlCPF.Visible = True pnlNota.Visible = False Else pnlCPF.Visible = False pnlNota.Visible = True End If ''Carrega Cidades Cidades() End If End Sub Protected Sub rbtnList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbtnList.SelectedIndexChanged If rbtnList.SelectedIndex = 0 Then pnlCPF.Visible = True pnlNota.Visible = False Else pnlCPF.Visible = False pnlNota.Visible = True End If End Sub Protected Sub btnLocaliza_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLocaliza.Click Dim daMySQL As MySqlDataAdapter Dim dsMySQL As New DataSet Dim strSQL As String = "" ConMYSQL.Open() strSQL = "Select * from CARTELINHA" Try If rbtnList.SelectedIndex = 0 Then strSQL += " WHERE CPF like '%" & edtCPF.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") Else If DropDownList1.SelectedIndex <> 0 Then strSQL += " WHERE NotaFiscal = " & edtNF.Text & " and DescLoja LIKE '%" & DropDownList1.SelectedItem.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") Else MensagemBox("Escolha a loja") DropDownList1.Focus() Exit Sub End If End If If dsMySQL.Tables(0).Rows.Count <= 0 Then MensagemBox("Não foi encontrador nenhum cliente com esses dados." & vbCrLf & "Tente novamente.") Exit Sub End If FormataGrid(dsMySQL) ''lblAvisos.Text = strSQL Catch ex As Exception lblAvisos.Text = "Anote o erro a seguir - Erro: " & ex.Message Finally ConMYSQL.Close() ConMYSQL = Nothing daMySQL = Nothing dsMySQL = Nothing End Try End Sub Public Sub FormataGrid(ByVal dsGrid As DataSet) Dim gvCartelinha As New GridView Dim Loja As New BoundField Loja.HeaderText = "Num. Loja" Loja.DataField = "Loja" Loja.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Loja) Dim DescLoja As New BoundField DescLoja.HeaderText = "Cidade Loja" DescLoja.DataField = "DescLoja" DescLoja.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(DescLoja) Dim Contrato As New BoundField Contrato.HeaderText = "Contrato" Contrato.DataField = "Contrato" Contrato.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Contrato) Dim NF As New BoundField NF.HeaderText = "Nota Fiscal" NF.DataField = "NotaFiscal" NF.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(NF) Dim CPF As New BoundField CPF.HeaderText = "CPF" CPF.DataField = "CPF" CPF.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(CPF) Dim Nome As New BoundField Nome.HeaderText = "Nome do Cliente" Nome.DataField = "NomeCliente" Nome.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Nome) Dim Serie As New BoundField Serie.HeaderText = "Serie" Serie.DataField = "SerieCartela" Serie.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Serie) Dim Sorteio As New BoundField Sorteio.HeaderText = "Num. Sorteio" Sorteio.DataField = "NumCartela" Sorteio.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Sorteio) ''Dados da Grid gvCartelinha.AutoGenerateColumns = False gvCartelinha.DataSource = dsGrid.Tables(0) gvCartelinha.DataBind() Page.Form.Controls.Add(gvCartelinha) End Sub Public Sub Cidades() Dim strSQL As String = "Select * from Lojas order by Descricao;" Dim daMySQL As New MySqlDataAdapter(strSQL, ConMYSQL) Dim dsLoja As New DataSet Try ConMYSQL.Open() daMySQL.Fill(dsLoja, "Lojas") DropDownList1.DataTextField = "Descricao" DropDownList1.DataValueField = "Descricao" DropDownList1.DataSource = dsLoja.Tables("Lojas").DefaultView DropDownList1.DataBind() DropDownList1.Items.Insert(0, " -- Selecione a loja -- ") DropDownList1.SelectedIndex = 0 Catch ex As Exception Finally ConMYSQL.Close() End Try End Sub Public Sub MensagemBox(ByVal strMSG As String) Response.Write("<script>alert(""" + strMSG + """);</script>") End Sub End Class Esse é o código completo da minha página Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 23, 2009 Debugou seu código para ve se a clausula Sql ficou correta e para verificar se realmente passou pelo método fill?? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 24, 2009 resolvido Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 24, 2009 Poste a solução. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 24, 2009 Como esse sistema ainda está em teste, criei um campo INTEGER no banco de dados, e voltou a funcionar. não sei pq, mas o LIKE no MySQL não estava funcionando direito (no programa) Fazia assim: Select * from <<TABELA>> where <<CAMPO1>> = <<Parametro>> and <<CAMPO2>> like '% << PARAMETRO >> %' Mudei para: Select * from <<TABELA>> where <<CAMPO1>> = <<Parametro>> and <<CAMPONOVO>> = << PARAMETRONOVO >> Compartilhar este post Link para o post Compartilhar em outros sites