hpires24 0 Denunciar post Postado Agosto 28, 2008 Bom dia, olha estou a tentar fazer um metodo que me faça uma procura de um determinado texto q esta numa textbox e que me devolva o resultado numa grid e esotu a tentar fazer assim: CODE Protected Sub ButtonProc_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonProc.Click If Page.IsValid Then Dim dr As SqlDataReader = Nothing Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("SLConnectionString").ToString) Dim objCommand As SqlCommand Try conn.Open() objCommand = New SqlCommand("usp_ProcuraLinha", conn) objCommand.CommandType = CommandType.StoredProcedure objCommand.Parameters.Add("@lintaginicio", SqlDbType.Char) objCommand.Parameters("@lintaginicio").Value = TextBoxProc.Text 'objCommand.ExecuteNonQuery() dr = objCommand.ExecuteReader(CommandBehavior.CloseConnection) If dr.HasRows Then GridView1.DataBind() Me.GridView1.Visible = True Else Me.Label5.Visible = True Me.GridView1.Visible = False End If Catch ex As SqlException 'Response.Write(ex.ToString) Response.Redirect("~/errordb.aspx") Finally conn.Close() End Try End If Me.DataGridAreaInvestigacao.Visible = False 'Me.GridView1.DataBind() 'Me.GridView1.Visible = True End Sub onde a query é a seguinte: ALTER procedure [dbo].[usp_ProcuraLinha] @lintaginicio varchar (255) as select * From Linhas where LIN_TAGINI_ID Like @lintaginicio e o q se esta a passar é o seguinte : ele se nao existir linhas entao devolve a msg de erro q tenho na label5 ate aqui tudo correcto, mas se existe essa linha que eu insiro mostra-me na grid todos os registos existentes nessa tabela e eu queria que me mostra-se apenas por ex o registo y7u8i89 da-me a ideia que ele faz o bind de tudo e eu queria que ao fazero bind mostra-se sim todos os campos mas so afectos a este registo y7u8i89 . Obrigado a todos desde ja. Compartilhar este post Link para o post Compartilhar em outros sites
pedro.wtf 0 Denunciar post Postado Agosto 28, 2008 Sua coleção de retorno é o 'dr', que é preenchido por um ExecuteReader. Você tem certeza que o seu GridView está está fazendo DataBind no dr? Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Agosto 28, 2008 sim penso q esta , obrigado Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 28, 2008 Você terá que criar seu parametro de busca na sua procedure também, pois é ela que filtra os dados. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Agosto 28, 2008 oi Bruno e como crio esse parametro? na sp pois eu penso q ja o estou fazendo na stored procedure Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 28, 2008 É não tinha reparado, basta você chamar sua Store Procedure com o valor preenchido no TextBox então. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Agosto 28, 2008 oi Bruno pois mas eu estou fazendo isso dentro do bloco try e nao esta a funcionar Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 29, 2008 Estranho cara, você ja tentou passar esse parametro direto no seu gerenciador de banco e dados pra ver se a procedure esta trazendo os dados filtrados corretamente?? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Setembro 1, 2008 sim bruno ja passei esse parametro directo no sql e esta filtrando correctamente Compartilhar este post Link para o post Compartilhar em outros sites
pedro.wtf 0 Denunciar post Postado Setembro 2, 2008 Crie um breakpoint na linha GridView1.DataBind() e veja qual é a coleção que ele realmente esta tratando. Não acho que seja a mesma do 'dr'. Poste aqui o código do GridView para vermos o DataSource, etc. Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Setembro 3, 2008 Obrigado pela ajuda amigo mas tou dando em tolo o codigo do meu grid é: CODE <asp:GridView DataKeyNames="LIN_ID" Width="100%" ID="GridView1" runat="server" BorderWidth="0px" AutoGenerateColumns="False" DataSourceID="SqlDataSourcecarregaDG2" AllowPaging="True" AllowSorting="True"> <Columns> <asp:TemplateField HeaderText="Ver" ShowHeader="False"> <ItemTemplate> <asp:ImageButton ID="LinkButton1" runat="server" CausesValidation="false" CommandName="Select" ImageUrl="~/imagens/ZoomHS.png"></asp:ImageButton> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="LIN_ID" HeaderText="Identificação" SortExpression="LIN_ID" /> <asp:BoundField DataField="LIN_TAGINI_ID" HeaderText="Tag Início" SortExpression="LIN_TAGINI_ID" /> <asp:BoundField DataField="LIN_TAGFIN_ID" HeaderText="Tag Fim " SortExpression="LIN_TAGFIN_ID" /> <asp:BoundField DataField="LIN_ANO_PL" HeaderText="Ano Plantação " SortExpression="LIN_ANO_PL" /> <asp:TemplateField ShowHeader="False" HeaderText="Apagar"> <ItemTemplate> <asp:CheckBox ID="chk1" runat="server" /> <asp:Label ID="Label9" runat="server" Visible="false" Text='<%# Bind("LIN_ID") %>' ></asp:Label> </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateField> </Columns> <FooterStyle BackColor="#990000" ForeColor="White" Font-Bold="True" /> <RowStyle BackColor="#D1EEEE" HorizontalAlign="Center" ForeColor="#333333" /> <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /> <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /> <HeaderStyle BackColor="White" Font-Bold="True" ForeColor="#8B4726" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> Obrigado a todos Compartilhar este post Link para o post Compartilhar em outros sites
pedro.wtf 0 Denunciar post Postado Setembro 4, 2008 Pronto, está dada a resposta. Seu GridView se baseia em um DataSoucer que não é a resposta do filtro feito pelo objCommand.ExecuteReader(). Remova o DataSourceID do GridView e, em tempo de execução, faça o seguinte: ... 'objCommand.ExecuteNonQuery() dr = objCommand.ExecuteReader(CommandBehavior.CloseConnection) If dr.HasRows Then GridView1.DataSource = dr GridView1.DataBind() Me.GridView1.Visible = True ... Não sou bom em VB, mas a idéia é essa... PS: Não esqueça de apagar a definição DataSourceID. Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Setembro 8, 2008 vou tentar fazer isso fico agradecido por sua ajuda Compartilhar este post Link para o post Compartilhar em outros sites