使用另一列填充数据网格列

时间:2014-12-29 09:45:42

标签: c# winforms visual-studio-2012 datagridview

enter image description here

我要用C#windows窗体创建一个表。此表必须列为日期列:格里高利日期和波斯日期。 公历日期列由SQL数据库中的存储过程填充。 我有以下功能,将公历日期转换为波斯日期:

public string miladitoshamsi(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
sb.Append(pc.GetYear(_date).ToString("00"));
sb.Append("-");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("-");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();
}

我在formload事件中尝试使用此代码来填充波斯日期列。但它还是空的。

        for (int i = 0; i < Grd.RowCount-1 ; i++)
        {
            DateTime bdate = Convert.ToDateTime(Grd.Rows[i].Cells["GregorianDate"].Value);
            string s = miladitoshamsi(bdate).ToString();
            Grd.Rows[i].Cells[0].Value = s.ToString();
            //MessageBox.Show(s);
        }

当我使用messagebox时,它将返回正确的波斯日期。但它无法填充数据网格波斯日期列。

2 个答案:

答案 0 :(得分:1)

Grd.Rows[i].Cells[0].Valueint,而不是Date

您的意思是Grd.Rows[i].Cells[2].Value

答案 1 :(得分:0)

将PersianDate列的公式表达式属性设置为&#34; [GregorianDate]&#34;。 这将自动填充所有值。