VisualStudioで
Formに生年月日を入力するためのComboBoxを
・年(ComboBox1)
・月(ComboBox2)
・日(ComboBox3)の3つ配置しています。
この3つのComboBoxをひとつにまとめてSQLServerのbirthdayに登録します。
各ComboBoxの項目を選択して登録ボタンを押すと、
選択通りの生年月日がSQLServer上に登録されるのですが、
各ComboBoxを何も選択せずに(気持ちとしてはNull状態で)登録ボタンを押すと、
なぜか1900-01-01という生年月日が設定されてSQLServer上に登録されてしまいます。
SQLServerでbirthdayを「Null許容」にしているのに
どうして勝手に設定されるのでしょうか。
ComboBoxを何も選択しなければNullで登録される方法を教えてください。
よろしくお願いいたします。
string year = comboBox1.Text; string month = comboBox2.Text; string day = comboBox3.Text; if (year != "" || month != "" || day != "") { int y = int.Parse(year); int m = int.Parse(month); int d = int.Parse(day); DateTime dt = DateTime.Now; int iYear = dt.Year; //現在の年を取得 int iMonth = dt.Month; //現在の月を取得 int iDay = dt.Day; //現在の日を取得 //生年月日が存在しない時 if (y > iYear) { label11.Text = "生年月日が不正です。"; return; } else if (y <= iYear && m > iMonth) { label11.Text = "生年月日が不正です。"; return; } else if (y <= iYear && m <= iMonth && d > iDay) { label11.Text = "生年月日が不正です。"; return; } label11.Text = ""; }
回答2件
あなたの回答
tips
プレビュー