Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Faccruz

[Resolvido] GridView não exibe resultado de SQL

Recommended Posts

Imagem Postada

 

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.