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

你用的是什么文化?如果它的日期分隔符不是/日期解析将失败,因为/它被替换为实际的日期分隔符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 回答