2016-07-27 22 views
-1

ddlから抽出された文字列値をDateTimeデータ型に変換できません。文字列をDateTime形式に変換する際の問題

型「にSystem.FormatException」の例外が発生したがmscorlib.dll ではなく、ユーザーコードで処理されなかった

エラーメッセージ。追加情報:文字列は で、有効なDateTimeとして認識されませんでした。

私はSQLデータベースで日付を更新する必要があります。

これは、データ辞書の画像であり、私が必要と属性は、これらの日時を取得し、変換私の現在のコードです

SQL Table http://i65.tinypic.com/ri4z95.jpg

誕生日になります。

string birth = ddlDay.SelectedItem.Value + "-" + ddlMonth.SelectedItem.Value + "-" + ddlYear.SelectedItem.Value; 
DateTime birthDate = DateTime.ParseExact(birth, "dd-MMMM-yyyy", System.Globalization.CultureInfo.InvariantCulture); 
objCustomer.birthDate = birthDate; 
+0

あなたには「出産」の価値はありませんか? –

+2

あなたのDropDownListsが何を表示しているのか分かりません。 –

+1

もちろん、ドロップダウンリストを分離するのではなく、何らかの形式の日付選択コントロールを使用すると、選択した日付を「DateTime」として公開することになります。文字列と書式を完全に使用します。 –

答えて

-2
にコードを変更し

:あなたが安全であることをTryParseを使用することができます代わりにParseExactの

DateTime.ParseExact(birth, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture); 
+0

これは、 'ddlMonth.SelectedItem.Value'が2桁の月番号である(現在書かれている月の完全な名前ではない)場合にのみ修正されます。 –

+0

Ok。そうですか。そして、ddlDay.SelectedItem.Valueは数値ですか? –

0
string date = "01/08/2008"; 
DateTime dt = Convert.ToDateTime(date); 
Console.WriteLine("Year: {0}, Month: {1}, Day: {2}", dt.Year, dt.Month, dt.Day); 
0

。すなわち:

var ddlDaySelectedItemValue = "29"; 
var ddlMonthSelectedItemValue = "Feb"; // February, 2, 02 
var ddlYearSelectedItemValue = "2016"; 

DateTime birthDate; 
string birth = ddlYearSelectedItemValue + " " + ddlMonthSelectedItemValue + " " + ddlDaySelectedItemValue; 

if (DateTime.TryParse(birth, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out birthDate)) 
{ 
    objCustomer.birthDate = birthDate; 
} 
関連する問題