前提・実現したいこと
visual studio 2017 c#を用いて
生年月日と年齢をSQL server Management studio 17に
登録できるシステムを作っています。
発生している問題・エラーメッセージ
1.生年月日の値を空白で、計算ボタンをクリックすると
"生年月日を正しく入力してください"とメッセージボックスが表示されるようにコードを書いているのですが
ありえない日付や月日だけ(例:1999/99/99、1986//)を入力してクリックすると、文字列は有効なDateTimeではありません
とエラーが発生します。
どのようなコードで対処すればよろしいでしょうか?
2.初期表示設定___/_/_/のMaskedTextBoxを使っています。
SQL server Management Studioと連携させて個人の生年月日をデータベース登録をしているのですが、(データ型はdate)
何も入力しないで登録すると/スラッシュがどうも邪魔をしているのか(?)
文字列から日付と時刻、またはそのいずれかへの変換中に、変換が失敗しました。とエラーが発生します。
なにか対処法はありますでしょうか?
MaskedTextBoxもしくはTextBoxは必ず使いたいと思っています。
年齢計算のコードも計算はできるのですが、正直これで合っているのかわかりません。
訂正あればよろしくお願いいたします。
生年月日のMaskedTextBox・・・MtxtBirthDay
年齢のTextBox・・・TxtAge
年齢計算ボタン・・・ButtonAgeCal
該当のソースコード
C#
1コード 2private void ButtonAgeCal_Click(object sender, EventArgs e) 3{ 4 // 生年月日が正しく入力されていれば年齢計算 5 if (MtxtBirthDay.Text.StartsWith(" ")) 6 { 7 MessageBox.Show("生年月日を正しく入力してください"); 8 } 9 else 10 { 11 DateTime BD = DateTime.Parse(MtxtBirthDay.Text); 12 int age = DateTime.Today.Year - BD.Year; 13 14 if (BD > DateTime.Today.AddYears(-age)) age--; 15 16 TxtAge.Text = age.ToString(); 17 } 18} 19
試したこと
補足情報(FW/ツールのバージョンなど)
初心者で拙い文章ですが
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/15 05:47
2018/03/15 05:59
退会済みユーザー
2018/03/15 06:17
2018/03/15 06:27 編集
2018/03/15 06:39
退会済みユーザー
2018/03/15 08:43
2018/03/15 09:00
2018/03/15 09:06
退会済みユーザー
2018/03/15 09:18
2018/03/15 09:22