none
Mostrar grid view e textbox RRS feed

  • Pergunta

  • olá pessoal, desde já agradeço o vosso tempo e disposição. É o seguinte, eu tenho uma gridview a listar diversos dados, mas quero colocar uma caixa de texto e um botão. O objectivo é voltar a carregar a gridview de acordo com um dos campos serem iguais ao que está na caixa de texto. Eu sei fazer a query, não sei e depois actualizar a minha gridview. Obrigadão já agora, já li muito sobre o assunto e ainda não encontrei solução. Obrigado
    sexta-feira, 15 de abril de 2011 17:04

Respostas

  • Tente desta forma, se ocorrer algum nos envie, por favor.

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:bdfaltasConnectionString10%>" ProviderName="<%$ ConnectionStrings:bdfaltasConnectionString10.ProviderName %>"          
     SelectCommand="SELECT Estado, nome, apelido,data FROM registo WHERE data like @campoTEXTO OR Estado like @campoDROP order by estado">
     <SelectParameters>
      <asp:ControlParameter ControlID="TExtbox1" Name="campoTEXTO" />
      <asp:ControlParameter ControlID="RadioButtonList1" Name="campoDROP" PropertyName="SelectedValue" Type="String" />                 
      </SelectParameters>
    </asp:SqlDataSource>

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Bairos quinta-feira, 28 de abril de 2011 22:43
    terça-feira, 26 de abril de 2011 18:17
  • Agora que percebi que esta utilizando o MySql, dentro do MySql o like é como no MSSQL, talvez o driver do MySql trate diferente, tente da forma abaixo e veja se ocorre erro.

    SelectCommand="select * from tabela1 where campo1 like '' @c1 + '%'"



    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Bairos domingo, 8 de maio de 2011 23:40
    domingo, 8 de maio de 2011 06:36

Todas as Respostas

  • Aconselho a assistir o vídeo sobre ADO.NET no módulo 4 do MSDN Experience.

    http://www.msdnbrasil.com.br/experience/webacademy/Secure/Conteudo.aspx


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    sexta-feira, 15 de abril de 2011 19:47
  • Olá Luiz,

     

    para aceder ao link tenho de me cadastrar, mas só é possivel para residentes no Brasil, como não sou do brasil não tenho hipótese de ver esse conteúdo, ha outra maneira de aceder a esse conteudo?

     

    Obrigadão.

    segunda-feira, 18 de abril de 2011 18:20
  • Olá Luiz,

     

    para aceder ao link tenho de me cadastrar, mas só é possivel para residentes no Brasil, como não sou do brasil não tenho hipótese de ver esse conteúdo, ha outra maneira de aceder a esse conteudo?

     

    Obrigadão.

    qual e a linguagem que estas a usar?

    VB.NET ou C# ?


    One word frees us of all the weight and pain of life: that word is love.
    segunda-feira, 18 de abril de 2011 18:23
  • ola.

     

    VB.NEt

    segunda-feira, 18 de abril de 2011 18:45
  • ola.

     

    VB.NEt

    eu nao vejo logica em voce ter os campos da tabela em uma textbox. A forma correcta seria ter os campos numa combobox. 

    Acho que voce quer dizer, pesquizar informacao de acordo a informacao que esta escrita no textbox, como isto:

    Select * From tabela where Nome= textbox1.text?

     


    One word frees us of all the weight and pain of life: that word is love.
    segunda-feira, 18 de abril de 2011 18:52
  • e isso mesmo q estou a tentar fazer,

    Select * From tabela where Nome= textbox1.text

    só q nao sei fazer :(

     

    segunda-feira, 18 de abril de 2011 18:59
  • eu nao expliquei bem, sorry.

    na minha pagina eu tenho uma caixa de texto, botao e uma gridview.na gridview eu tenho 500 nomes, eu quero q o utilizador escreva o nome da pessoa a pesquisar na caixa de texto, depois primir o botão, e os nomes que aparecerão no gridview serão aqueles que forem iguais ao colocado na caixa de texto.

     

    Cumprimentos.

    segunda-feira, 18 de abril de 2011 19:05
  • Opcao 1:
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim myConnection As String = (Coloca aqui a sua conecao)
            Using CNET As New OdbcConnection(myConnection)
                Dim command As New OdbcCommand("Select * From Table_INF where Name=@Name", CNET)
                command.Parameters.AddWithValue("@Name", Me.TextBox1.Text)
                CNET.Open()
                Dim RRreader As OdbcDataReader = command.ExecuteReader
                With RRreader
                    If .HasRows Then
                        .Read()
                        Dim DB As New BindingSource
                        DB.DataSource = RRreader
                        Me.DataGridView1.DataSource = DB
                    End If
                End With
            End Using
        End Sub
    Opcao 2:
     Private Sub encher()
            DataGridView1.Rows.Clear()
            Dim conexao As New SqlConnection(Escreve aqui a sua conecao)
            Dim comando As SqlCommand = New SqlCommand()
            comando.Parameters.Clear()
            comando.Parameters.Add(New SqlParameter("@FirstName", Me.TextBox6.Text.ToString()))
            
            comando.CommandText = "Select * FROM Table_Copy Where LastName Like @FirstName + '%'"
           
            comando.Connection = conexao
            conexao.Open()
            Dim ler As SqlDataReader = comando.ExecuteReader()
            While ler.Read()
                Me.DataGridView1.Rows.Add(ler.Item("FirstName"), ler.Item("LastName"), _
                                          ler.Item("Address"), ler.Item("IDD"))
            End While
            ler.Close()
            
     conexao.Close()
            
        End Sub
    Opcao 3:
    Private Sub Pesquiza()
            ''DataGridView1.Rows.Clear()
            Dim conexao As New SqlConnection(sStrin.ToString())
            Dim comando As SqlCommand = New SqlCommand()
            comando.Parameters.Clear()
            comando.Parameters.Add(New SqlParameter("@FirstName", Me.TextBox6.Text.ToString()))
            comando.CommandText = "Select * FROM Table_Copy Where LastName Like @FirstName + '%'"
            comando.Connection = conexao
            conexao.Open()
            Dim ler As SqlDataReader = comando.ExecuteReader()
            While ler.HasRows
                TextBox1.Text = ler.Item("FirstName")
                TextBox2.Text = ler.Item("LastName")
                Me.DataGridView1.Rows.Add(ler.Item("FirstName"), ler.Item("LastName"), _
                                          ler.Item("Address"), ler.Item("IDD"))
            End While
            ler.Close()
            Dim registo As String = DataGridView1.Rows.Count - 1
            Label1.Text = registo.ToString()
            conexao.Close()
            
        End Sub

    One word frees us of all the weight and pain of life: that word is love.
    segunda-feira, 18 de abril de 2011 21:43
  • ola malange,

    espectacular as tres opções que me deste para repopular a gridview, só ha um problema, a gridview não tem a opção add e como estou a utilizar o visual studio 2010 tb não ha a datagridview.

    Com a tua ajuda está quase!

     

    Abraço.

     

     

    segunda-feira, 18 de abril de 2011 22:17
  • Coloquei o seguinte código:

    GridView1.Columns.Add(ler.Item("FirstName"))

    mas deu o seguinte erro:

    Não é possível associar o objecto de tipo 'System.String' ao tipo 'System.Web.UI.WebControls.DataControlField'.

    segunda-feira, 18 de abril de 2011 23:42
  • Voce esta a usar web........

    Agora pegou fogo cara.....Ai tem uma opcao diferente quando se carrega web....http://msdn.microsoft.com/en-us/library/aa479316.aspx


    One word frees us of all the weight and pain of life: that word is love.
    terça-feira, 19 de abril de 2011 13:46
  • "agora pegou fogo" lol, gostei da tua expressão, vou consultar o link que enviaste

    Obrigado

     

    terça-feira, 19 de abril de 2011 13:50
  • A livraria fala de dropdownlist e update, mas não mostra como "repovoar" o gridview após um select.
    terça-feira, 19 de abril de 2011 14:09
  • pessoal, eu coloquei um radiobuttonlist e o gridview lista os dados conforme o value do item seleccionado (através de um parametro, em que o parametro é o radiobuttonlist.value ), a questão é colocar um valor do parametro igual ao que esta escrito numa textbox, aqui é q ta complicado :(, alguem tem uma ideia?
    quarta-feira, 20 de abril de 2011 18:04
  • pessoal e possivel colocar condições do tipo:

     

    if radiobuton.value=1 then

    <SelectParameters>
                    <asp:ControlParameter ControlID="textbox7" Name="campo"  
                         />
                </SelectParameters>

    elseif radiobuton.value=2 then

    <SelectParameters>
                    <asp:ControlParameter ControlID="radiobutton2.value" Name="campo"  
                         />
                </SelectParameters>

    end if

    eu sei q e vb.net, mas qual e a sintaxe para controlos asp??

     

     

    quarta-feira, 20 de abril de 2011 18:26
  • Tente  algo como:

        <% if (1 == 2) %>
        <asp:Label runat="server" ID="lblTeste1" Text="1" />
        <% if (2 == 2) %>
        <asp:Label runat="server" ID="lblTeste2" Text="2" />
    

     Obs.: Por favor, nas proximas dúvidas abra uma nova thread, assim outras pessoas verão seu tópico e poderão participar.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 20 de abril de 2011 18:37
  • Ok Estevam, abrir um novo topico certo?

     

    obrigado pela ajuda, mas o <%%> não e possivel entre SQLCOnnections, olha eu tive a consultar no msdn e mostrou o seguinte:

    SelectCommand="SELECT EmployeeID, LastName, FirstName, Address, City, Region, PostalCode
                 FROM Employees WHERE @CAIXATEXTO like @EmpID"
    
    <SelectParameters> <asp:ControlParameter ControlID="EmployeesDropDownList" PropertyName="SelectedValue" Name="EmpID" Type="Int32" DefaultValue="0" />
    o que gostaria de meter era varios parametros:

    <asp:ControlParameter ControlID="textbox1" PropertyName="SelectedValue" Name="CAIXATEXTO" Type="Int32" DefaultValue="0" />

     </SelectParameters>

    O problema e q so le o ultimo parametro!, neste caso o CAIXATEXTO


    quinta-feira, 21 de abril de 2011 01:40
  • Creio que seja mais correto então mudar seu select para:

    SELECT EmployeeID, LastName, FirstName, Address, City, Region, PostalCode FROM Employees WHERE FirtNanme like @CAIXATEXTO OR EmployeeID = @EmpID
    
    Obs.: O Type do ControlParameter da CAIXATEXTO deve ser alterado para String (Varchar).
    
    <br/>
    


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quinta-feira, 21 de abril de 2011 03:55
  • só funciona se o @EmpID=%%, de resto nao mostra nada. ta dificccilll
    quinta-feira, 21 de abril de 2011 16:25
  • Qual valor esta vindo neste variável @EmpID? Poderia enviar seu ultimo código para poder verificar e os valores respectivos que estão vindo nas variáveis?

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    terça-feira, 26 de abril de 2011 17:53
  • <asp:SqlDataSource ID="SqlDataSource1" runat="server"
                ConnectionString="<%$ ConnectionStrings:bdfaltasConnectionString10%>"
                ProviderName="<%$ ConnectionStrings:bdfaltasConnectionString10.ProviderName %>"           
                Aqui queria por:

    if (radiobuttonlist1.selectedvalue=0 or radiobuttonlist1.selectedvalue=1)//Gostaria de colocar um codigo semelhante a este;)

                SelectCommand="SELECT Estado, nome, apelido,data FROM registo WHERE Estado like @campoDROP order by estado">

    else

                SelectCommand="SELECT Estado, nome, apelido FROM registo WHERE data like @campoTEXTO order by estado">

    endif

                <SelectParameters>
                 <asp:ControlParameter ControlID="TExtbox1" Name="campoTEXTO" />
                    <asp:ControlParameter ControlID="RadioButtonList1" Name="campoDROP"
                        PropertyName="SelectedValue" Type="String" />                  
                </SelectParameters>

            </asp:SqlDataSource>

    terça-feira, 26 de abril de 2011 18:07
  • Tente desta forma, se ocorrer algum nos envie, por favor.

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:bdfaltasConnectionString10%>" ProviderName="<%$ ConnectionStrings:bdfaltasConnectionString10.ProviderName %>"          
     SelectCommand="SELECT Estado, nome, apelido,data FROM registo WHERE data like @campoTEXTO OR Estado like @campoDROP order by estado">
     <SelectParameters>
      <asp:ControlParameter ControlID="TExtbox1" Name="campoTEXTO" />
      <asp:ControlParameter ControlID="RadioButtonList1" Name="campoDROP" PropertyName="SelectedValue" Type="String" />                 
      </SelectParameters>
    </asp:SqlDataSource>

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Bairos quinta-feira, 28 de abril de 2011 22:43
    terça-feira, 26 de abril de 2011 18:17
  • Se quiser que o campo comece pelas letras da caixa de texto, tipo @campoTexto mais %, como junto o campo com o sinal %
    quinta-feira, 28 de abril de 2011 15:58
  • Desculpe, não entendi, você utilizar a filtragem do like é isso? Da maneira que lhe passei acima ele recupera somente se houver o nome idêntico certo, mas funcionou?

     

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quinta-feira, 28 de abril de 2011 18:19
  • Ola,

    Funcionou 5 ESTRELAS, é isso mesmo que pretendia, agradeço a ti e o Malange que  disponibilizaram o seu tempo a resolver este problema, já está o programa a correr as mil maravilhas.

    Gostaria era de colocar uma filtragem no like de modo a que na pesquisa começasse pelas primeiras palavras do TEXTBOX, como o textbox e um parametro não sei como ligar o sinal SQL a seguir ao parametro: %. Exemplo em sql:

    Exemplo em sql:

    Select * from tabela where nome like 'campo%'

    Exemplo em ado:

    Select * from tabela where nome like @campo.......???

    quinta-feira, 28 de abril de 2011 22:24
  • Tente com o selectCommand abaixo:

    SelectCommand="SELECT Estado, nome, apelido,data FROM registo WHERE data like '%' + @campoTEXTO + '%' OR Estado like '%' + @campoDROP + '%' order by estado">

    Obs.: Se quiser filtrar somente o final, retire as aspas simples e o símbolo de percentagem antes do campo.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    sexta-feira, 29 de abril de 2011 00:31
  • Dá este erro:

    Select * from tabela where nome like @campo +  '%'

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+ '%' and nome like 'tio manel' order by surname' at line 1


    • Editado Bairos sexta-feira, 29 de abril de 2011 17:26 formatação de texto
    sexta-feira, 29 de abril de 2011 16:25
  • Anyone?
    quinta-feira, 5 de maio de 2011 15:50
  • Você deve estar fazendo alguma coisa errada pois no meu teste funciona.

    Veja:

    SelectCommand="select * from tabela1 where campo1 like @c1 + '%'"

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quinta-feira, 5 de maio de 2011 21:03
  • Mas entao por que raio da este erro!! eu uso o visual studio 2010.

     

    Select * from tabela where nome like @campo +  '%'

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+ '%' and nome like 'tio manel' order by surname' at line 1

    sábado, 7 de maio de 2011 21:40
  • Agora que percebi que esta utilizando o MySql, dentro do MySql o like é como no MSSQL, talvez o driver do MySql trate diferente, tente da forma abaixo e veja se ocorre erro.

    SelectCommand="select * from tabela1 where campo1 like '' @c1 + '%'"



    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Bairos domingo, 8 de maio de 2011 23:40
    domingo, 8 de maio de 2011 06:36
  • Caro luiz, esta resolvido, s´´o tive de tirar o sinal +, ficou assim:

    SelectCommand="select * from tabela1 where campo1 like @c1 '%'"

    Abraço  e thanks!

    domingo, 8 de maio de 2011 23:40