0

これは私のコードです:

//Session["Date"]=ddlDate.SelectedItem+ ddlMonth.SelectedItem+ddlYear.SelectedItem;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString);
conn.Open();
string date = Convert.ToString(ddlYear.SelectedItem.Value) + "/" + Convert.ToString(ddlMonth.SelectedItem.Value) + "/" + Convert.ToString(ddlDate.SelectedItem.Value);
DateTime dt = Convert.ToDateTime(date);
// ddlYear.SelectedValue + "/" + ddlMonth.SelectedValue + "/" + ddlDate.SelectedValue
SqlCommand cmd = new SqlCommand(@"insert into OnlineBookingEvent(BookingEvent,BookeventDate,cdt,udt)values
                                (@BookingEvent,@BookeventDate,@cdt,@udt)", conn);
cmd.Parameters.AddWithValue("@BookingEvent", ddlEventName.DataValueField);
cmd.Parameters.AddWithValue("@BookeventDate",dt);
cmd.Parameters.AddWithValue("@cdt", System.DateTime.Now);
cmd.Parameters.AddWithValue("@udt", System.DateTime.Now);
cmd.ExecuteNonQuery();
4

1 に答える 1

0

どの文化を使用していますか?date-separator がの実際の日付区切り記号に置き換えられる/ため、日付の解析が失敗します。/CultureInfo.CurrentCulture

CultureInfo.InvariantCultureこのセパレーターを強制する場合は、次のパラメーターとして渡すことができますDateTime.Parse

string date = string.Format("{0}/{1}/{2}"
    , ddlYear.SelectedItem.Value
    , ddlMonth.SelectedItem.Value
    , ddlDate.SelectedItem.Value); 
DateTime dt = DateTime.Parse(date, System.Globalization.CultureInfo.InvariantCulture);

参照: 「/」カスタム書式指定子

Convert.ToString(ddlYear.SelectedItem.Value)このプロパティはすでに文字列であるため、必要ないことに注意してください。String.Formatまた、読みやすさの理由から、文字列連結を に置き換えました。

于 2013-11-11T13:02:28.547 に答える