过滤到c#中的gridview

时间:2011-04-15 06:31:56

标签: c# asp.net

我有一个有专栏的gridview 名称(batchname,姓名,进度,开始日期,结束日期,labname)

我想在gridview中添加一个过滤器。我可以在gridview标题的每一列下面添加一个过滤器。或者我应该在gridview之外使用它吗?在这里我在gridview外面使用它。并触发一个TextChanged事件。我已经完成了以下代码,但它不再起作用了。请建议一个解决方案。

我必须从三个表中访问数据才能在gridview中显示。三 表格格式如下,

BatchMaster(batchmasterid,usermasterid,labmasterid,batchname,batchcode,batchdays,startdate,enddate)

UserMaster(usermasterid,title,firstname,middlename,lastname,phoneno);

LabMaster(labmasterid,labname);

我在textbox更改事件中写了一个代码,它在gridview之外。

protected void txtSearch_TextChanged(object sender, EventArgs e)
       {
           SqlConnection con = new SqlConnection("Data
Source=.\\SQLEXPRESS;Initial Catalog=EMS;User ID=sa;Password=sa123");
           string query = "SELECT
batchmasterid,usermasterid,labmasterid,batchname,faculty,batchdays,startdate,enddate,LabMaster.labname
FROM BatchMaster,UserMaster Where batchname LIKE '%" + txtSearch.Text
+ "%'";
           SqlCommand cmd = new SqlCommand(query, con);
           SqlDataAdapter da = new SqlDataAdapter(cmd);
           DataSet ds = new DataSet();
           da.Fill(ds);
           gvHeadload.DataSource = ds;
           gvHeadload.DataBind();

      }

我也尝试过加入查询。但它不再起作用了。 请尽早提出解决方案。 先谢谢你的建议..

1 个答案:

答案 0 :(得分:0)

首先,每次用户输入内容时都不应创建sql连接。你应该这样做,例如在OnInitialize()之后。其次,您必须打开连接:con.Open(),获取数据,将其存储在数据集中并关闭它con.Close()。然后,您应该过滤更改的文本上的数据集。还有其他方法,但我认为这将是一个良好的开端。