C#在gridview中检索出符合条件的记录

我做了一个网站,用asp.net,我在做系统预警功能的时候,想要检索出当前时间距离数据库中药具的有效期的天数小于前台输入的天数。当点击“查询”按钮时,调用“datediff”函数,一下是datediff函数中的一部分:
//文本框中的数据
string t = this.tYouXiaoQi.Text.ToString().Trim();
int dtime = Convert.ToInt32(t);
//取当前时间
string lastTime = System.DateTime.Now.ToString().Trim();

DateTime dt2 = Convert.ToDateTime(lastTime);

int[] retval = new int[GridView1.Rows.Count];
//循环获取每一行的有效期
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{

//取数据库中的有效期
string startTime = ((Label)GridView1.Rows[1].Cells[3].FindControl("YouXiaoQi")).Text;
DateTime dt1 = Convert.ToDateTime(startTime);
TimeSpan tracts = dt1 - dt2;
int totalsecond = Convert.ToInt32(tracts.TotalSeconds);
retval[i] = totalsecond / 86400;
// retval= totalsecond / 86400;
// TextBox1.Text=Convert.ToString( retval);
//Label1.Text =startTime
if (retval[i] <= dtime)
{
string select = "select * from YaoJuKuCunXinXiBiao where LiuShuiHao='" + GridView1.DataKeys[1].Value + "'";
//创建SqlCommand命令对象
SqlDataAdapter adapter = new SqlDataAdapter(select, con);
DataSet ds = new DataSet();
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
}
}
我用一些文本框测试了一下(是在page_load函数中测试的),剩余天数、提取的日期都没错,但就是检索的结果是都符合记录。数据库中有4个记录,第二个记录是符合条件的,是不是我用的循环不正确啊?还是点击按钮后,根本就没调用datediff函数。目前我就觉得这两个有可能。请大师指点,我调了好多天了,一直没结果。请指点,急用,谢谢啦。

把填充控件数据的代码放在里面
if(Page.IsPostBack)
{
//填充数据的代码
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C#在gridview中检索出符合条件的记录
把填充控件数据的代码放在里面 if(Page.IsPostBack){ \/\/填充数据的代码 }

...中子窗体输入查询条件如何在父窗体的GridView中显示查询结果_百度...
如果要实现楼主你说的这个功能的话,你需要在主窗体下建一个public公用的变量用来保存查询条件,就是在有datagridview的窗体下。例如: public string sqlwhere;然后当你子窗体关闭的时候把你输入的条件赋值给sqlwhere。然后在主窗体下用新的条件重新刷新窗口。写一个简单的例子吧,比如两个窗体是form1和...

在C#中如何实现多条件查询并将查询结果显示在datagridview中
StringBuilder strSql = new StringBuilder();strSql.Append(" select * from abc where 1=1 ");if (!string.IsNullOrEmpty(comboBox1.Text))strSql.Append(" AND 种类='" + comboBox1.Text+ "'");if (!string.IsNullOrEmpty(comboBox2.Text))strSql.Append(" AND 材质='" + comboBox2....

c#.net中如何只显示符合条件的数据
可以用SQL和Linq来做筛选后,再绑定到数据控件(比如:GridView)上

在C# ASP.net 中怎么获取GridView控件选择行的内容
首先, 可以在GridView中增加一隐藏字段, 例如:<asp:LinkButton ID="btnStatus" runat="server" CommandName="Action" Visible="false" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"><\/asp:LinkButton> 这里主要设置行的Index.然后在GridView有一个RowCommand(object sender, GridView...

...控件,怎么查询datagridview控件里面的一条记录
这个应该很简单的,在BUTTON里写代码:连接数据库,运行下面的SQL语句,select * from tbname where field1='"+this.TextBox1.Text.Tostring()+"';再把数据绑定到GRIDVIEW上,就可以了

在c#中如何通过GridView空间读取SQLserver中的数据,不用绑定数据源的...
从数据库中查询中的结果集放到datatable中,然后datagridview.datasource=datatable就可以显示数据了

C#中循环读取GridView控件中值的问题
取单元格显示文本不是Value哦,应该是Text属性。double money = 0;foreach (DataGridViewRow Row in dvCost.Rows){ money += Convert.ToDouble(Row.Cells[3].Text);} lblMoney.Text = money.ToString();

C#查询 ,我想再输入1.6后就自动筛选出第一条数据
我一般做这样 都是用一个很笨的方法 首先在页面上 看到有5个textbox 那么我就认为是 每个textbox分别对应 gridview的5个列好了 这个是最笨的了 也是最容易理解的 就是在你的buttion的单击事件 中 if()5次 就可以了每次都判断是不是空值 如果是空值的话 在Select语句中 就不用再写该字段...

C# Winform 在DataSet中查询纪录,最后返回这个查询出来的纪录dataset...
举个例子,如果要查询ID=xxx的记录:ds.Tables[0].Select("ID ='" + yourId + "'");返回是一个DataRow[] 如果想要DataSet,那你可以自己再new 一个Dataset 把刚返回的DataRow[] Add进去

相似回答
大家正在搜