データベースに日付データ型の生年月日フィールドがあります。私のaspxページには、同じドロップダウンが3つあります。日、月、年に 1 つのドロップダウン。ユーザーが日と月、月と年、または任意の組み合わせのみを選択した場合。それをデータベースの日付フィールドに挿入する方法。
ユーザーが日と月、月と年、またはその組み合わせのみを選択した場合。これをデータベースに挿入する方法は?
ありがとう、
データベースに日付データ型の生年月日フィールドがあります。私のaspxページには、同じドロップダウンが3つあります。日、月、年に 1 つのドロップダウン。ユーザーが日と月、月と年、または任意の組み合わせのみを選択した場合。それをデータベースの日付フィールドに挿入する方法。
ユーザーが日と月、月と年、またはその組み合わせのみを選択した場合。これをデータベースに挿入する方法は?
ありがとう、
2 つのオプション:
DateTime
提供されていない場合は「ダミー」データを入力し、提供された情報を示す別のフィールドを用意します最初のほうがより賢明に思えます。「1976 年のある月の 19 日」を使用して、多くの適切な日付関連のクエリを実際に実行できるわけではありません。これは、データがユーザーが指定したものを正確に表していることを意味します。
Date は、過去、現在、または未来の実際の日を参照するため、常に日、月、および年のすべてが必要です。
すべての日付は 01/01/0001 から 31/12/9999 の範囲内にある必要があるため、0000 年を保存する方法はありません。
あなたの問題には2つのオプションがあります:
すべてのフィールドを選択するまで、ユーザーが回答を送信できないようにします。それが標準的な方法です。バリデーターを使用できます。または、これを試してください(これについてはわかりません) 1.日付フィールドをnullのままにします。および/または
2.If (txtDate.Text = "") Then cmd.Parameters("@Date").Value = sqldatenull
0000 は有効な年ではありません。最初に、入力フォームの要件を再検討して、何がオプションで、検証を追加できるかを判断します。
オプションの年のみの場合は、単に年として 0001 を格納できます。
dt = new DateTime(Math.Max(1,dob_year), dob_month, dob_day);
日や月がオプションの場合、DateTime は適切なデータ型ではありません。null 値を格納できないため、日、月、年に個別のフィールドを用意することが唯一のオプションです。