字符串未被识别为有效的DateTime错误

时间:2013-03-15 10:45:15

标签: c# asp.net

DataTable dt1 = new DataTable();
            dt1.Columns.Add("studid",typeof(int));
            dt1.Columns.Add("rollno", typeof(int));
            dt1.Columns.Add("date", typeof(DateTime));
            dt1.Columns.Add("starttime", typeof(string));
            dt1.Columns.Add("class", typeof(string));
            dt1.Columns.Add("section", typeof(string));
            dt1.Columns.Add("subject", typeof(string));

            for (int i = 0; i < dt.Rows.Count; i++)
            {               
                dt1.Rows.Add(Convert.ToInt32(dt.Rows[i]["id"]), Convert.ToInt32(dt.Rows[i]["rollno"]), Convert.ToDateTime(txtdate.Text),time.SelectedItem.ToString(), drpclass.SelectedItem.ToString(), drpsection.ToString(), drpsubject.SelectedItem.ToString());
            }

我在"String was not recognized as a valid DateTime"收到错误time.SelectedItem.ToString(),即使DataTable列的数据类型是字符串。 我应用了断点,09:30:00是我在time.SelectedItem.ToString()

中获得的值

3 个答案:

答案 0 :(得分:3)

您的输入'09:30:00'仅提及相应列的数据类型为DateTime,其中输入包括日,月和年。

(假设它是下拉列表) 因此,为了获得字符串中的Time,请执行以下操作:

string mytime=  DateTime.Parse(DropDownlist.SelectedItem.Text.ToString()).ToShortTimeString();

答案 1 :(得分:1)

错误消息似乎表明将string值转换为Datetime时会出现问题。

此转换发生的唯一地方是

Convert.ToDateTime(txtdate.Text)

线。您能否仔细检查txtdate的值并确保它是有效日期。

答案 2 :(得分:0)

您在此字段中拥有的价值txtdate.Text可能会导致问题。

你这样做

 Convert.ToDateTime(txtdate.Text)

因此,如果TextBox包含除日期格式之外的其他值。然后它会抛出一个错误。