如何将dropdownList的值(以DateTime格式显示时间)转换为DateTime并保存到数据库

时间:2016-04-11 22:11:37

标签: asp.net datetime drop-down-menu

这是我的dropDownList,其id = endtime

 <asp:DropDownList   style="width:65%" class="form-control1" ID="endtime" runat="server"  OnSelectedIndexChanged="endtime_SelectedIndexChanged">

通过这种方法,我将时间填入我的下拉列表

    public  void timeDropdown()
    {
        DateTime StartTime = DateTime.ParseExact("00:00", "HH:mm", null);
        DateTime EndTime = DateTime.ParseExact("23:55", "HH:mm", null);
        TimeSpan Interval = new TimeSpan(0, 60, 0);
        starttime.Items.Clear();
        endtime.Items.Clear();
        while (StartTime <= EndTime)
        {
            endtime.Items.Add(StartTime.ToShortTimeString());
            StartTime = StartTime.Add(Interval);
        }
       endtime.Items.Insert(0, new ListItem("--Select--", "0"));
    }

这里我得到dropdownList的值并将其转换为DateTime然后保存在数据库中。但它给出了这个例外: &#39;字符串未被识别为有效的DateTime&#39; 。数据库中的endtime字段也是DateTime数据类型。

  DateTime end_time = Convert.ToDateTime(endtime.SelectedItem.Text);
SqlCommand com = new SqlCommand("INSERT INTO IvrDatas endtime values @endtime",conn);
com.Parameters.AddWithValue("@endtime", end_time);

1 个答案:

答案 0 :(得分:0)

DateTime end_time = Convert.ToDateTime(endtime.SelectedItem.Text);

异常应该在这里,因为你的endtime.selectedItem.Text是没有日期的时间。

因此您必须将Date添加到此selectedItem

enter image description here

然后使用下面的解决方案转换为时间

com.Parameters.AddWithValue("@endtime", end_time.ToString("hh:mm:ss"));

请勿转换为日期时间格式。

String end_time = endtime.SelectedItem.Text;
com.Parameters.AddWithValue("@endtime", end_time);