【发布时间】:2009-06-15 17:52:59
【问题描述】:
我正在开发以 MS ACCESS 作为后端的 C# winforms 应用程序。在 datagridview 我有一列“startTime”。
我的要求是我想验证开始时间,如果需要,以编程方式编辑值并保存它。
例如,如果用户输入“8.00 AM”而不是“8:00 AM”,我的程序不应抛出“无效数据类型”错误(在数据库中“StartTime”是日期时间类型的字段)。相反,我的程序应该将 8.00 AM 更改为 8:00 AM,并将 8:00 AM 发送到后端。 下面粘贴的是代码。任何建议请。
private void dgvSession_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
//** Validation for StartTime
if (e.ColumnIndex == this.dgvSession.Columns["StartTime"].Index)
{
string time = e.FormattedValue.ToString().Trim();
strtDt = e.FormattedValue.ToString().Trim();
if (!ValidateTime(time))
{
//MessageBox.Show("Entered time is not in a correct format.);
e.Cancel = true;
return;
}
}
}
public bool ValidateTime(string thetime)
{
Regex checktime = new Regex(@"(^([0-9]|[0-1][0-9]|[2][0-3])[.:]([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)");
return checktime.IsMatch(thetime);
}
【问题讨论】:
标签: c# winforms datagridview