【问题标题】:How do i save time from dropdownlist to database?如何节省从下拉列表到数据库的时间?
【发布时间】:2016-04-12 15:29:49
【问题描述】:

我的下拉菜单是这样的

这里我将下拉列表的选定值存储到“TimeSpan”类型的变量中并保存在数据库中。但它给出了异常:'String was not known as a valid TimeSpan.' 我的数据库字段类型也是 Time(7)

 DateTime start_time = DateTime.ParseExact(starttime.SelectedItem.Text, "hh:mm tt", CultureInfo.InvariantCulture);
 TimeSpan stt = start_time.TimeOfDay;
SqlCommand com = new SqlCommand("INSERT INTO IvrDatas starttime values @starttime",conn);
com.Parameters.AddWithValue("@starttime", stt)

请帮我解决这个问题。

【问题讨论】:

  • 阅读TimeSpan.Parse的文档怎么样?
  • 是的,我做了,但找不到我的代码的解决方案
  • 单个时间值如何定义TimeSpan?你确定不是DateTime.Parse(starttime.SelectedItem.Text).Time你要找的吗?
  • 我已根据您的建议编辑了我的代码,但它给出了“*字符串未被识别为有效日期时间”的例外情况,您可以查看@GigiSan
  • 如果您还没有解决问题,请尝试this answer

标签: asp.net sql-server timespan


【解决方案1】:

“11:00 AM”无法使用 TimeSpan.Parse 函数进行解析。您可以按如下方式使用 ParseExact 函数:

DateTime.ParseExact(starttime.SelectedItem.Text, "hh:mm tt", CultureInfo.InvariantCulture);

您可以使用“.TimeOfDay”函数从 Parsed datetime 中提取时间。这将为您提供正确的值和类型

【讨论】:

  • 我应该将你存储在给定行之上的日期时间类型的变量中吗?并且数据库中的字段也应该从 time(7) 更改为 DateTime ?对吗?
  • 您可以使用“.TimeOfDay”函数从 Parsed datetime 中提取时间。这将为您提供正确的值和类型
  • 我尝试了你的建议,但它给出了异常:**字符串未被识别为有效的 DateTime** 并且还编辑了我的代码.. 你可以检查我是否正确。
  • 那么是时候检查“starttime.SelectedItem.Text”的值了。它当然不应该是“--Select--”。那么它当然行不通
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多