【问题标题】:Get record from dataset using Expression使用表达式从数据集中获取记录
【发布时间】:2012-02-16 14:17:56
【问题描述】:

我想使用某个表达式从数据集中获取记录..!

这是我的数据集

这是我的数据集,我想根据 punchDate 获取两个日期之间的记录。

示例:我想获取03-01-201225-01-2012 之间的记录意味着它返回正确的记录。

假设我只是将03-12-2011 之类的日期输入到25-01-2012 意味着它返回错误。

错误:源不包含 DataRows;

我在这里附上了我的代码:

protected void findbyexpression(string Expression)
{
    try
    {
        DataTable dt1 = new DataTable();
        DataSet4TableAdapters.sp_getalltimesheetTableAdapter TA = new DataSet4TableAdapters.sp_getalltimesheetTableAdapter();
        DataSet4.sp_getalltimesheetDataTable DS = TA.GetData();
        DataTable DT = new DataTable();
        DT = DS[0].Table;
        DataRow[] foundRows;
        foundRows = DT.Select(Expression);
        if (DT.Rows.Count == 0)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('No records found for request query');</script>", false);
        }
        else
        {
            panheader.Visible = true;
            dt1 = foundRows.CopyToDataTable();
            Session["TaskTable"] = dt1;
            grdvw.DataSource = Session["TaskTable"];
            grdvw.DataBind();
        }
    }
    catch (Exception e2)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('" + e2.Message + "');</script>", false);
    }
}

表达式为:

 string expression = "PunchDate >= '" + txtfromdate.Text + "' and PunchDate <= '" + txttodate.Text + "'";
            findbyexpression(expression);

请帮我获取记录..

【问题讨论】:

    标签: c# .net dataset


    【解决方案1】:

    您的查询未正确选择记录。您可以查看此链接以在Select date b/w ranges 范围内选择日期。并使用这个条件。

     string expression = PunchDate < YourEndDate AND PunchDate  >= your StartDate.
    
    • 您的查询可以是 Sql Injected,请尝试使用参数化查询。 Parameterized query.
    • 如果可能,请尝试将所有变量重命名为某个有意义的名称。

    【讨论】:

    • 感谢您的回复我得到了结果。
    【解决方案2】:
    1. dataview = dataset.tables [table_name] .defaultview;
    2. dataview.rowfilter =“日期> ='”+ startdate.toshortdateString()+“'和日期
    3. DataGridView1.DataSource = DataView;

    【讨论】:

    • 谢谢你的快速回复......现在我没有收到错误。但在DataView中没有找到记录。 span>
    • 您是否在数据集中的日期中添加过滤器?如果有帮助 span>将其标记为答案
    • 我用上面表达式得到了结果,但略有变化就是这样。 '字符串表达式=“punchdate> =#”+ txtfromdate.text +“#和pounddate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    相关资源
    最近更新 更多