Loading ...

Calculate date difference for each record of data table

Who is online?  0 guests and 0 members
home  »  forums   »  asp.net topics   »  getting started / general asp.net   » Calculate date difference for each record of data table

Calculate date difference for each record of data table

Posts under the topic: Calculate date difference for each record of data table

Posted: 9/3/2010

Lurker 55  points  Lurker
  • Joined on: 10/22/2009
  • Posts: 7

Hello ,

i am new in development,

i am fetching data through a query from database

Ex:  Select CompID, CompTitle, Comp_Name, Address, RecievedDate, ResolvedDate From TblComplaints

I am stored data in a datatable at my DAL layer,

And on my GUI page bind this data table with a repeater, Now i want to add a new field NumberOfDays

NumberOfDays=ResolvedDate-RecievedDate

for each row in data table, How can i get this.

Please help me.

 

 

 

 

 


Posted: 9/3/2010

Starter 1414  points  Starter
  • Joined on: 12/1/2008
  • Posts: 66

Hi,

You can calculate NoOfDays on ItemDataBound event of repeater control.

Put a Literal inside a repeater in ItemTemplate.

  protected void rptData_ItemDataBound(object sender, RepeaterItemEventArgs e)
  {

 

             Literal litNoOfDays = (Literal)e.Item.FindControl("litNoOfDays");

             DateTime dt1 = ResolvedDate;            

             DateTime dt2 = RecievedDate;  

             int NumberOfDays ;

             TimeSpan ts = dt1 - dt2;

             NumberOfDays=ts.Days;

             litNoOfDays.Text= NumberOfDays.ToString();

 

  }

Hope this helps.

Thanks,

Sumit


Posted: 9/3/2010

Lurker 55  points  Lurker
  • Joined on: 10/22/2009
  • Posts: 7

Thanks for your support

 

<ItemTemplate>
       <tr style="background-color:InactiveBorder;">
       <td style="width:100px;"><asp:Literal ID="lblCompid" runat="server" Text='<%#Eval("Comp_id") %>'/></td>       
       <td style="width:450px;"><%#DataBinder.Eval(Container, "DataItem.comp_title")%></td>      
        <td style="width:100px;"><%#DataBinder.Eval(Container, "DataItem.im_ondate","{0:d}")%></td>
       <td style="width:140px;"><%#DataBinder.Eval(Container, "DataItem.comp_state")%></td>
        <td style="width:60px;"><asp:Literal ID="litNoOfDays" runat="server"></asp:Literal> </td>
        <td style="width:60px;"><%#Eval("Comp_Status") %></td>
       </tr>
       
   </ItemTemplate>   


    
protected void rptData_ItemDataBound(object sender, RepeaterItemEventArgs e)
  {

 

             Literal litNoOfDays = (Literal)e.Item.FindControl("litNoOfDays");

             DateTime dt1 = ResolvedDate;            

             DateTime dt2 = RecievedDate;  

             int NumberOfDays ;

             TimeSpan ts = dt1 - dt2;

             NumberOfDays=ts.Days;

             litNoOfDays.Text= NumberOfDays.ToString();

 

  }

 

Problem is now more serious, how can get these dates for each row.

 


Posted: 9/3/2010

Guru 16813  points  Guru
  • Joined on: 4/19/2009
  • Posts: 490
  Answered

Hi Vasim,

vasim said:

user="Vasim Siddiqui"] RecievedDate, ResolvedDate

You already mentioned in your first post that you are getting those two dates from db so what is the issue ? You can just get as you are getting other like "DataBinder.Eval(Container, "DataItem.comp_title")"

 

Thanks,

Raghav


tags repeater

Posted: 9/4/2010

Lurker 117  points  Lurker
  • Joined on: 6/2/2009
  • Posts: 10
  Answered

 

vasim said:

user="Vasim Siddiqui"]

Thanks for your support

 

<ItemTemplate>
       <tr style="background-color:InactiveBorder;">
       <td style="width:100px;"><asp:Literal ID="lblCompid" runat="server" Text='<%#Eval("Comp_id") %>'/></td>       
       <td style="width:450px;"><%#DataBinder.Eval(Container, "DataItem.comp_title")%></td>      
        <td style="width:100px;"><%#DataBinder.Eval(Container, "DataItem.im_ondate","{0:d}")%></td>
       <td style="width:140px;"><%#DataBinder.Eval(Container, "DataItem.comp_state")%></td>
        <td style="width:60px;"><asp:Literal ID="litNoOfDays" runat="server"></asp:Literal> </td>
        <td style="width:60px;"><%#Eval("Comp_Status") %></td>
       </tr>
       
   </ItemTemplate>   


    
protected void rptData_ItemDataBound(object sender, RepeaterItemEventArgs e)
  {

 

             Literal litNoOfDays = (Literal)e.Item.FindControl("litNoOfDays");

             DateTime dt1 = ResolvedDate;            

             DateTime dt2 = RecievedDate;  

             int NumberOfDays ;

             TimeSpan ts = dt1 - dt2;

             NumberOfDays=ts.Days;

             litNoOfDays.Text= NumberOfDays.ToString();

 

  }

 

Problem is now more serious, how can get these dates for each row.

 

 

 protected void rptData_ItemDataBound(object sender, RepeaterItemEventArgs e)
  {

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
              Literal litNoOfDays = (Literal)e.Item.FindControl("litNoOfDays");
                if(litDays!=null)
                {
                    DateTime dt1;                     //ResolvedDate            

                   DateTime dt2 ;                    // RecievedDate;  


                    DataRowView dr = (DataRowView)e.Item.DataItem;

                    if(DateTime.TryParse(dr["ResolvedDate"].ToString(), out dt1) && DateTime.TryParse(dr["RecievedDate"].ToString(), out dt2) )
                    {
                        int n =dt1.Subtract(dt2).Days;
                        litDays.Text = n.ToString();
                    }
                }

}

 

I think this may work for you.

 

Thanks


Page 1 of 1 (5 items)