如何使用日期时间数据类型按列对数据表进行排序 [英] How to sort datatable by column with datetime datatype

查看:101
本文介绍了如何使用日期时间数据类型按列对数据表进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我所做的如下

dtClaim.DefaultView.Sort = "TransactionDate asc";
dtClaim = dtClaim.DefaultView.ToTable();
ViewState["dtClaim"] = dtClaim;

以下是应用排序之前数据表数据的屏幕截图

Here is a screen shot of data of data table before applying a sorting

但是在使用上述代码后,我也无法通过使用 TransactionDate对数据进行排序

But also after using above code i am not able to sort data by using "TransactionDate"

编辑

在这里,我显示了我如何准备此数据表

Here i shown that how i am preparing this datatable

 DataTable dtClaim = new DataTable();
 dtClaim = (DataTable)ViewState["dtClaim"];

 DataRow drClaim = dtClaim.NewRow();
 drClaim["ClaimId"] = count + 1;
 drClaim["TextileClaimApplicationId"] = ViewState["TextileClaimApplicationId"].ToString();
 drClaim["BankId"] = ViewState["TextileClaimApplicationId"].ToString();
 drClaim["BankName"] = ViewState["TextileClaimApplicationId"].ToString();
 drClaim["SectorId"] = ViewState["TextileClaimApplicationId"].ToString();
 drClaim["IsDisbursment"] = rblIsDisbursment.SelectedValue;
 drClaim["TransactionDate"] = txtDisbursementDate.Text == "" ? Convert.ToDateTime(txtRepaymentDate.Text, System.Globalization.CultureInfo.GetCultureInfo("en-GB").DateTimeFormat) : Convert.ToDateTime(txtDisbursementDate.Text, System.Globalization.CultureInfo.GetCultureInfo("en-GB").DateTimeFormat);
 drClaim["DisbursementAmount"] = txtDisbursementAmount.Text == "" ? Convert.ToDecimal("0") : Convert.ToDecimal(txtDisbursementAmount.Text);
 drClaim["RepaymentPrincipleAmount"] = txtRepaymentPrincipleAmount.Text == "" ? Convert.ToDecimal("0") : Convert.ToDecimal(txtRepaymentPrincipleAmount.Text);
 drClaim["RepaymentOtherAmount"] = txtRepaymentOtherAmount.Text == "" ? Convert.ToDecimal("0") : Convert.ToDecimal(txtRepaymentOtherAmount.Text);
 dtClaim.Rows.Add(drClaim);



dtClaim.DefaultView.Sort = "TransactionDate";
dtClaim = dtClaim.DefaultView.ToTable();
ViewState["dtClaim"] = dtClaim;


推荐答案

为了让我的代码识别DataTable值作为DateTime,创建时必须设置行的数据类型。 (我曾将此DataTable用作GridView的数据源,并且很难对其进行排序。)

In order to get my code to recognize a DataTable value as a DateTime I had to set the data type of my row when I created it. (I was using this DataTable as a DataSource for my GridView and was having difficulties getting it to sort on it.)

以前我有

DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("StartDate");

我将其更改为

dt.Columns.Add("StartDate", typeof(DateTime));

将我插入该列的类型更改为DateTime直到我设置了列类型都没有用。

Changing the type I was inserting into that column to a DateTime did not work until I set the column type.

https://msdn.microsoft.com/en-us/library/hfx3s9wd(v = vs.110).aspx

这篇关于如何使用日期时间数据类型按列对数据表进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆