2012-01-23 56 views
0

我想使用某個表達式從數據集中獲取記錄..!使用表達式從數據集中獲取記錄

這是我的數據集enter image description here

這是我的數據集我想根據punchDate兩個日期之間獲得regords。

示例:我想要獲取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); 

請幫我拿到記錄..

回答

0
  1. 數據視圖= dataset.Tables [TABLE_NAME] .DefaultView; ()+「'和DATE < ='」+ endDate.ToShortDateString()+「'」;
  2. dataGridView1.DataSource = dataview;
+0

感謝您的快速回復...現在我沒有得到錯誤。但是在dataview中找不到記錄。 –

+1

您是否在數據集中的日期範圍內添加了過濾器?如果幫助,請將其標記爲答案 – Neha

+0

我該如何補充這一點。 –

0

您的查詢未正確選擇記錄。你可以查看這個鏈接以選擇範圍在Select date b/w ranges之間的日期。並使用這個條件。

string expression = PunchDate < YourEndDate AND PunchDate >= your StartDate. 
  • 查詢可以是SQL注入,儘量使用參數化查詢。 Parameterized query.
  • 如果可能,嘗試將所有變量重命名爲一些有意義的名稱。
+0

感謝您的回覆,我收到了結果。 –

+0

婉言謝絕,可以將anwser標記爲已接受。或upvote它。 。 –

相關問題