gridview中的查询

VPOO 2008-07-10 09:37:46
gridview已经和数据源绑定

现在有一个textbox 一个button 在textbox中输入查询条件—>单击按钮->将符合的结果显示在gridview中

如何实现,在给100分
...全文
236 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfywy 2008-07-11
  • 打赏
  • 举报
回复

private void GridBind()
{
this.GridView1.DataSource = users.GetTable(sqlstr);
this.GridView1.DataBind();
if (users.GetTable(lblid.Text).Rows.Count <= 15)
{
lblCount.Text = "";
if (users.GetTable(sqlstr).Rows.Count <= 0)
{
lblCount.Text = "暂无相关日志";
}
panelGV.Visible = false;
}
else
{
lblCount.Text = "";
panelGV.Visible = true;
}
}
protected void imgserch_Click(object sender, ImageClickEventArgs e)
{
try
{
sqlstr = "Select * from log order by MsgTime desc";
if (StrQuery() != "")
{
if (!tst && tet)
{
Response.Write("<script>alert('设置的起始日期时间不正确!');location='javascript:history.go(-1)';</script>");
}
else if (!tet && tst)
{
Response.Write("<script>alert('设置的终止日期时间不正确!');location='javascript:history.go(-1)';</script>");
}
else if (!tst && !tet)
{
Response.Write("<script>alert('设置的起始日期时间与终止日期时间不正确!');location='javascript:history.go(-1)';</script>");
}
else
{
sqlstr = "Select * from log where " + StrQuery();
sqlstr = sqlstr + " order by MsgTime desc";
}
}
GridView1.DataSource = users.GetTable(sqlstr);
GridView1.DataBind();
ShowPageIndex();
CheckPager();
if (users.GetTable(sqlstr).Rows.Count <= 15)
{
lblCount.Text = "";
if (users.GetTable(sqlstr).Rows.Count <= 0)
{
lblCount.Text = "暂无相关日志";
}
panelGV.Visible = false;
}
else
{
lblCount.Text = "";
panelGV.Visible = true;
}
lblid.Text = "";
lblid.Text = sqlstr;
}
catch
{
Console.Write("wrong");
}
}

/// <summary>
/// 做查询字符串拼接
/// </summary>
/// By Lifuyun
public string StrQuery()
{
string str = "";
if (ddluser.SelectedValue.ToString() != "")
{
str = str + " UserName like'%" + ddluser.SelectedValue + "%'";
}
if (ddltype.SelectedValue.ToString() != "")
{
if (ddluser.SelectedValue.ToString() != "")
str = str + " and MsgSrc like'%" + ddltype.SelectedValue + "%'";
else
str = str + " MsgSrc like'%" + ddltype.SelectedValue + "%'";
}
if (time_s.Text != "")
{
DateTime st;
try
{
st = Convert.ToDateTime(time_s.Text);
if ((ddluser.SelectedValue.ToString() != "") || (ddltype.SelectedValue.ToString() != ""))
str = str + " and MsgTime >= cdate('" + st + "')";
else
str = str + " MsgTime >=cdate('" + st + "')";
tst = true;
}
catch
{
tst = false;
str = Convert.ToString(time_s.Text);
//Response.Write("<script>alert('设置的起始日期时间不正确!');location='javascript:history.go(-1)';</script>");
}
}
if (time_e.Text != "")
{
DateTime et;
try
{
et = Convert.ToDateTime(time_e.Text);
if ((ddluser.SelectedValue.ToString() != "") || (ddltype.SelectedValue.ToString() != "") || (time_s.Text != ""))
str = str + " and MsgTime <=cdate('" + et + "')";
else
str = str + " MsgTime <=cdate('" + et + "')";
tet = true;
}
catch
{
tet = false;
str = Convert.ToString(time_e.Text);
//Response.Write("<script>alert('设置的终止日期时间不正确!');location='javascript:history.go(-1)';</script>");
}
}
if (tbcroption.Text != "")
{
if ((ddluser.SelectedValue.ToString() != "") || (ddltype.SelectedValue.ToString() != "") || (time_s.Text != "") || (time_e.Text != ""))
str = str + " and Msg like'%" + tbcroption.Text.Trim() + "%'";
else
str = str + " Msg like'%" + tbcroption.Text.Trim() + "%'";
}
return str;
}
amandag 2008-07-11
  • 打赏
  • 举报
回复
如果你用的是数据源控件,这样更合理
    protected void btnQuery_Click(object sender, EventArgs e)
{
SqlDataSource1.SelectCommand = "select * from yourtable where field1 = @field1";
SqlDataSource1.SelectParameters["field1"].DefaultValue = TextBox1.Text;
SqlDataSource1.Select(DataSourceSelectArguments.Empty);
//GridView1.DataBind();
}
bruda 2008-07-11
  • 打赏
  • 举报
回复
string sql="select * from tablea where name='+textbox1.Text+'";

DataBind(sql);//重新绑定数据
//重新绑定数据
Public void DataBind(string sql)
{

SqlCommand cm = new SqlCommand();
cm.Connection = MyConnection51;
cm.CommandText = sql;
cm.CommandType = CommandType.Text;
SqlDataReader dr=cm.ExecuteReader();
gridview1.DataSource=dr;
GridView1.DataBind();
dr.Close();
}
mengxj85 2008-07-11
  • 打赏
  • 举报
回复
直接对数据源进行过滤,数据源是一张虚表,可以对虚表进行过滤
DataView dv = dt.DefaultView;//获取全局表dt的默认视图

dv.RowFilter = "ekId like '%'";//添加过滤条件
Feiin 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]
①在按钮的Click事件处理方法中获取TextBox.Text取得条件,进行检索。
②将检索结果绑定到GridView上。
-->完事
[/Quote]
seesea125 2008-07-10
  • 打赏
  • 举报
回复
http://hi.baidu.com/cicon/blog/item/d5858101913305d2267fb532.html

http://hi.baidu.com/allen_blog/blog/item/61a8a33d191cfbeb3d6d9780.html
seesea125 2008-07-10
  • 打赏
  • 举报
回复
看下基础的东西,网上很多

http://blog.csdn.net/hackhu/archive/2008/01/20/2055066.aspx

asp.net和jsp,C#和java思想都是一样的
  • 打赏
  • 举报
回复
1\如果你使用datatable,那么datatable对象有一个过滤数据行的方法,非常方法,或者使用dataview也可以,再将过滤的数据绑定到gridview
2\如果你使用List<>对象,可以使用List的FindAll方法,过滤数据,再绑定到gridview
3\你可以使用sqldatasource这个也非常方便
4\最不方便的方法就是再查一次数据库.
VPOO 2008-07-10
  • 打赏
  • 举报
回复
谢谢,我回去试试,要对的话给你100
seesea125 2008-07-10
  • 打赏
  • 举报
回复
你要在头上加上
using System.Data.SqlClient;

前面绑定比如这样。。
<%#Eval("name")%>
seesea125 2008-07-10
  • 打赏
  • 举报
回复
单击按钮的事件里

string sql="select * from tablea where name='+textbox1.Text+'";

DataBind(sql);//重新绑定数据
//重新绑定数据
Public void DataBind(string sql)
{

SqlCommand cm = new SqlCommand();
cm.Connection = MyConnection51;
cm.CommandText = sql;
cm.CommandType = CommandType.Text;
SqlDataReader dr=cm.ExecuteReader();
gridview1.DataSource=dr;
GridView1.DataBind();
dr.Close();
}

VPOO 2008-07-10
  • 打赏
  • 举报
回复
我就是代码不会,思路我都会,可不可以给出点代码
机器人 2008-07-10
  • 打赏
  • 举报
回复
①在按钮的Click事件处理方法中获取TextBox.Text取得条件,进行检索。
②将检索结果绑定到GridView上。
-->完事

61,830

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧