2013-07-29 26 views
1

我必須過濾人員的註冊日期,但我不知道該怎麼做。ASP.NET C#CodeBehind DB使用文本框過濾GridView

我的網格視圖:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:UtentiRegistratiConnectionString1 %>" DeleteCommand="DELETE FROM [Utenti] WHERE [Id] = @Id" InsertCommand="INSERT INTO [Utenti] ([Nome], [Cognome], [Cellulare], [CodiceFiscale], [IndirizzoEmail], [Password], [Prenotazioni], [Acquisti], [Bonus], [DataRegistrazione]) VALUES (@Nome, @Cognome, @Cellulare, @CodiceFiscale, @IndirizzoEmail, @Password, @Prenotazioni, @Acquisti, @Bonus, @DataRegistrazione)" SelectCommand="SELECT [Id], [Nome], [Cognome], [Cellulare], [CodiceFiscale], [IndirizzoEmail], [Password], [Prenotazioni], [Acquisti], [Bonus], [DataRegistrazione] FROM [Utenti]" UpdateCommand="UPDATE [Utenti] SET [Nome] = @Nome, [Cognome] = @Cognome, [Cellulare] = @Cellulare, [CodiceFiscale] = @CodiceFiscale, [IndirizzoEmail] = @IndirizzoEmail, [Password] = @Password, [Prenotazioni] = @Prenotazioni, [Acquisti] = @Acquisti, [Bonus] = @Bonus, [DataRegistrazione] = @DataRegistrazione WHERE [Id] = @Id"> 
    <DeleteParameters> 
     <asp:Parameter Name="Id" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="Nome" Type="String" /> 
     <asp:Parameter Name="Cognome" Type="String" /> 
     <asp:Parameter Name="Cellulare" Type="String" /> 
     <asp:Parameter Name="CodiceFiscale" Type="String" /> 
     <asp:Parameter Name="IndirizzoEmail" Type="String" /> 
     <asp:Parameter Name="Password" Type="String" /> 
     <asp:Parameter Name="Prenotazioni" Type="Int32" /> 
     <asp:Parameter Name="Acquisti" Type="Int32" /> 
     <asp:Parameter Name="Bonus" Type="String" /> 
     <asp:Parameter DbType="DateTime2" Name="DataRegistrazione" /> 
    </InsertParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="Nome" Type="String" /> 
     <asp:Parameter Name="Cognome" Type="String" /> 
     <asp:Parameter Name="Cellulare" Type="String" /> 
     <asp:Parameter Name="CodiceFiscale" Type="String" /> 
     <asp:Parameter Name="IndirizzoEmail" Type="String" /> 
     <asp:Parameter Name="Password" Type="String" /> 
     <asp:Parameter Name="Prenotazioni" Type="Int32" /> 
     <asp:Parameter Name="Acquisti" Type="Int32" /> 
     <asp:Parameter Name="Bonus" Type="String" /> 
     <asp:Parameter DbType="DateTime2" Name="DataRegistrazione" /> 
     <asp:Parameter Name="Id" Type="Int32" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 

Data di Registrazione: Da&nbsp; 
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
&nbsp;a 
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> 
&nbsp;&nbsp; 
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Filtra" CssClass="filtra" /> 
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" EmptyDataText="Nessun record di dati da visualizzare." Font-Size="Small" PageSize="15"> 
    <Columns> 
     <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> 
     <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" /> 
     <asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" /> 
     <asp:BoundField DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" /> 
     <asp:BoundField DataField="Cellulare" HeaderText="Cellulare" SortExpression="Cellulare" /> 
     <asp:BoundField DataField="CodiceFiscale" HeaderText="CodiceFiscale" SortExpression="CodiceFiscale" /> 
     <asp:BoundField DataField="IndirizzoEmail" HeaderText="IndirizzoEmail" SortExpression="IndirizzoEmail" /> 
     <asp:BoundField DataField="Password" HeaderText="Password" SortExpression="Password" /> 
     <asp:BoundField DataField="Prenotazioni" HeaderText="Prenotazioni" SortExpression="Prenotazioni" /> 
     <asp:BoundField DataField="Acquisti" HeaderText="Acquisti" SortExpression="Acquisti" /> 
     <asp:BoundField DataField="Bonus" HeaderText="Bonus" SortExpression="Bonus" /> 
     <asp:BoundField DataField="DataRegistrazione" HeaderText="DataRegistrazione" SortExpression="DataRegistrazione" /> 
    </Columns> 
</asp:GridView> 

在代碼隱藏我曾嘗試:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    DateTime datada = DateTime.Parse(TextBox3.Text); 
    DateTime dataa = DateTime.Parse(TextBox4.Text).AddDays(1); 
    SqlDataSource Prova = new SqlDataSource(); 
    Prova.SelectCommand = "Select * from Utenti where DataRegistrazione>[email protected] and DataRegistrazione<[email protected]"; 
    Prova.ID = "proviamoci"; 
    GridView1.DataSourceID = Prova.ID; 

} 

或者:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(strcon); 
    SqlCommand cmd = new SqlCommand("Select * from Utenti order by Id Asc", con); 
    SqlDataAdapter adp = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    con.Open(); 
    adp.Fill(ds, "Utenti"); 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
    GridView1.DataSource = ds; 
    GridView1.DataBind(); 
} 

但他們並沒有我怎樣才能工作...做? 我需要過濾gridview。我必須把「註冊日期」 - >從「日期」到「日期」。

+0

在代碼中你不應該指定數據源,becouse要覆蓋給出的數據源。 ASP:GridView控件有一個Datasource屬性,你應該通過asp:datasource ID作爲參數(因爲你已經這樣做),一切都在控件內部處理,所以根本不需要任何buttuns 數據源應該過濾,請參閱examples @ http ://msdn.microsoft.com/en-us/library/xt50s8kz(v = vs.100).aspx – nBalu

+0

@nBalu但是我需要使用2個文本框,並且DropDownList的這些值中的任何一個都不能在TextBox上運行! – ProtoTyPus

回答

0

不要在意控件類型:(樣本)

<asp:sqldatasource 
      id="SqlDataSource1" 
      runat="server" 
      connectionstring="<%$ ConnectionStrings:MyNorthwind%>" 
      selectcommand="SELECT LastName FROM Employees WHERE Title = @Title"> 
      <selectparameters> 
       <asp:controlparameter name="Title" controlid="yourTextBox" propertyname="Text"/> 
      </selectparameters> 
     </asp:sqldatasource> 
+0

我已在其他帖子中回覆您! – ProtoTyPus

相關問題