【发布时间】:2014-12-29 09:45:42
【问题描述】:
我将在 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();
}
我正在表单加载事件中尝试使用此代码来填充波斯日期列。但它还为空。
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);
}
当我使用消息框时,它将返回正确的波斯日期。但它不能填充数据网格波斯日期列。
【问题讨论】:
-
Persion Date 列是字符串类型的吗?
-
它的列类型正是“DataGridViewTextBoxColumn”。
-
您是否在 Form_Load 事件处理程序中放置了一个断点,以确保 (1) 它被调用,(2) Grd.RowCount 不为零?
-
不是断点。但我通过消息框对其进行了测试。通过消息框可以。如果可能的话,你可以通过团队 wiewer 连接到我的电脑。
标签: c# winforms visual-studio-2012 datagridview