我在 datable 中遇到问题。
我在datable中得到了一个select查询的结果。
我想将日期更改为波斯日期,这是有效的。但是,当我在 DataGridView 中显示数据而不是显示1392/02/11
时,它会显示1392/11/02
(更改月份和日期的位置,我该怎么办? )
DataTable dtt = new DataTable();
dtt = DataPortAction.GetCustomerHostById(CustomerId);
for (int i = 0; i < dtt.Rows.Count; i++)
{
DateTime dt1 = new DateTime();
dt1 = Convert.ToDateTime(dtt.Rows[i][2]);
System.Globalization.PersianCalendar pa = new System.Globalization.PersianCalendar();
string s = pa.GetYear(dt1) + "/" + pa.GetMonth(dt1) + "/" + pa.GetDayOfMonth(dt1);
dtt.Rows[i][2] = s;
}
dataGridView1.DataSource = dtt;
我更改了Get Day和Get Month的位置,但它没有显示在DataGridView
中答案 0 :(得分:0)
而不是:
dt1 = Convert.ToDateTime(dtt.Rows[i][2]);
你应该使用例如。
dt1 = DateTime.ParseExact(dtt.Rows[i][2], "yyyy/dd/MM/", CultureInfo.InvariantCulture);
或者简单地说:
dt1 = dtt.Rows[i][2].ToString("yyyy/dd/MM/");
答案 1 :(得分:0)
在datagridview中更改日期的列类型,并将datatable更改为字符串,因此当将表绑定到gridview时,显示不会自动格式化日期。
你的东西问题是绑定时自动格式化