这是我的代码:
//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();
答案 0 :(得分: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);
请参阅:The "/" Custom Format Specifier
请注意,由于此属性已经是字符串,因此不需要Convert.ToString(ddlYear.SelectedItem.Value)
。出于可读性原因,我还用String.Format
替换了字符串连接。