更改数据表中的值无法正常工作

时间:2014-01-26 11:43:24

标签: c#

我在 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

2 个答案:

答案 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时,显示不会自动格式化日期。

你的东西问题是绑定时自动格式化