We can filter data in Dataset in asp.net C# using DataRow. We
can use multiple filters in Dataview rowfliter to filter data. We can filter
any one table from dataset.
Syntax:
DataView dv = new DataView(ds.Tables[0]);
dv.RowFilter = "QuestionId<=5"; // You can add multiple conditions here in Row filter.
DataSet dsTemp = new DataSet();// declare new dataset.
DataTable dt =
dv.ToTable();//declare new datatable and assign
filtered data to table.
.
dsTemp.Tables.Add(dt);
// Add data table to dataset.
|
Before Filter:
After filter:
Full Example with Repeater:
Database:
Create
Table in SQL Database:
HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<h4>Dynamic Control In Repeater</h4>
<br />
<br />
<asp:Repeater ID="rptPrint" runat="server" >
<ItemTemplate>
<table style="width: 300px">
<tr>
<td colspan="5" style="width: 7in">
<strong>
<asp:Label ID="LblQuestion" Text='<%#Eval("Question")%>' runat="server"></asp:Label></strong><br />
<asp:HiddenField ID="hfAnswer" Value='<%#Eval("Answer") %>' runat="server" />
<asp:HiddenField ID="hfType" Value='<%#Eval("Type") %>' runat="server" />
<asp:HiddenField ID="hfQuestionId" Value='<%#Eval("QuestionId") %>' runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<asp:PlaceHolder ID="phRow" runat="server" />
<br />
</td>
</tr>
</table>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>
|
Code
Behind File:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default2 : System.Web.UI.Page
{
SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Fill_Repeater();
}
private void Fill_Repeater()
{
if (con.State ==
ConnectionState.Open)
con.Close();
con.Open();
SqlDataAdapter adp
= new SqlDataAdapter("Select * from tblQuestion", con);
DataSet ds = new DataSet();
adp.Fill(ds);
//Dataview to filter data in Dataset
DataView dv = new DataView(ds.Tables[0]);
dv.RowFilter = "QuestionId<=5"; // You can add multiple conditions here in Row Filter...
DataSet dsTemp = new DataSet();
DataTable dt =
dv.ToTable();
dsTemp.Tables.Add(dt);
if (dsTemp.Tables[0].Rows.Count >
0)
{
rptPrint.DataSource = dsTemp;
rptPrint.DataBind();
}
con.Close();
}
}
|