我有一个有专栏的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();
}
我也尝试过加入查询。但它不再起作用了。 请尽早提出解决方案。 先谢谢你的建议..
答案 0 :(得分:0)
首先,每次用户输入内容时都不应创建sql连接。你应该这样做,例如在OnInitialize()之后。其次,您必须打开连接:con.Open()
,获取数据,将其存储在数据集中并关闭它con.Close()
。然后,您应该过滤更改的文本上的数据集。还有其他方法,但我认为这将是一个良好的开端。