RowFilter : 데이터 검색시 사용하는 속성 : "CategoryName Like '%컴퓨터%'"

- Connection -> Command -> DataAdapter -> DataSet -> DataTable -> DataView ->

DataView.RowFilter 속성




-------------------------------------------------------------------------------------




==> [FrmRowFilter.aspx] 소스 및 디자인

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmRowFilter.aspx.cs" Inherits="FrmRowFilter" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        카테고리명 :

        <asp:TextBox ID="txtSearchQuery" runat="server"></asp:TextBox>

        <asp:Button ID="btnSearch" runat="server" Text="검색" onclick="btnSearch_Click" />

        <br />

        <asp:GridView ID="ctlSearchList" runat="server">

        </asp:GridView>

   

    </div>

    </form>

</body>

</html>

 

 

 


-------------------------------------------------------------------------------------

 


==> [FrmRowFilter.aspx.cs]


 

using System;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

 

public partial class FrmRowFilter : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void btnSearch_Click(object sender, EventArgs e)

    {

        SqlConnection con = new SqlConnection(

            ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

        con.Open();

        SqlCommand cmd = new SqlCommand("Select * From Categories", con);

        cmd.CommandType = CommandType.Text;

        SqlDataAdapter da = new SqlDataAdapter(cmd);

        DataSet ds = new DataSet();

        da.Fill(ds, "Categories");

 

        //[1] DataTable로 변환

        DataTable dt = ds.Tables[0];

 

        //[2] Dataview로 변환

        DataView dv = dt.DefaultView;

 

        //[3] DataView.RowFilter로 필터링

        dv.RowFilter = "CategoryName Like '%" + txtSearchQuery.Text + "%'";

        dv.Sort = "CategoryName Asc"; // 정렬

        this.ctlSearchList.DataSource = dv; // 필터링된 리스트만 출력됨.

        this.ctlSearchList.DataBind();

 

        con.Close();

    }

}

 

 

 

 

// DataView..::.RowFilter 속성 - DataView에 표시할 행을 필터링하는 데 사용하는 식을 가져오거나 설정합니다.

 

 

 

-------------------------------------------------------------------------------------

 

 

[실행결과]

--> 웹페이지에서 '텍스트박스'에 [SQL Server] - [Market]데이터베이스 - [dbo.Categories]테이블에 존재하는 "CategoryName"의 '전체' 또는 '일부'를 입력한 후 "검색"버튼을 누르면...





--> 아래그림과 같이 텍스트박스에 입력한 단어가 포함된 "CategoryName"이 "GridView"에 출력되는 것을 볼 수 있다.

 

--> 텍스트박스에 아무것도 입력하지 않고 '검색'버튼을 누르면 아래그림과 같이 [SQL Server] - [Market]데이터베이스 - [dbo.Categories]테이블에 존재하는 모든 데이터가 "CategoryName"의 오름차순으로 정렬되어 웹페이지의 "GridView"에 출력된다.




Posted by holland14
: