这是我的密码
if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in dsResult.Tables[0].Rows)
{
dr["Date"] = Convert.ToDateTime(dr["Date"]).ToString("yyyy-MM-dd");
}
}
dsResult.Tables[0].AcceptChanges();
我要做的是,数据集的格式为d/m/yyyy中有一个
Date
,我正试图将数据修改为yyyy-MM-dd
格式,但我的数据集没有得到更新。 最佳答案
日期的存储方式和显示方式是两个截然不同的东西。例如,它在1/7/2013 00:00:00 AM
中显示为DataTable
的原因是它根据您的区域性设置显示DateTime
的默认显示。
但是,这通常不是你想要的显示方式,所以有很多方法可以剥这只猫的皮,但我会给你一些。首先也是最重要的是,您可以简单地更改应用程序的区域性,以便在默认情况下按您所需的方式显示它。
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
Thread.CurrentThread.CurrentCulture = culture;
现在,当您显示
DateTime
值时,您将默认获得该区域性,例如:var dt = new DateTime();
dt.ToShortDateString(); // here is where the culture is used
您还可能会发现,您的应用程序中有一个特定的位置需要以某种方式显示它,那么您可以这样做:
var dt = new DateTime();
dt.ToString("dd-MM-yyyy"); // custom formatting on the fly
所以,简而言之,您不需要在
DataTable
中更改它。无论它如何显示,值都是相同的。关于c# - 无法修改数据集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14236078/