私はC#winformsアプリケーションでMS ACCESSをバックエンドとして使用しています。 datagridviewでは、私は "startTime"という列を持っています。セルの値を検証して編集する方法
私の必要条件は、開始時間を検証し、必要に応じてプログラムで値を編集して保存することです。
例えば、ユーザが「午前8:00」ではなく「8.00AM」を入力した場合、私のプログラムは「無効なデータ型」というエラーを投げてはなりません(データベース "StartTime"はdatetime型のフィールドです)。むしろ私のプログラムは午前8時から午前8時に変更し、午前8時にバックエンドに送るべきです。下に貼り付けた はコードです。任意の提案pls。
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);
}