你好,我是编程的新手,我有以下问题
string tt = drpPickuptime.SelectedItem.Text;
DateTime mora = Convert.ToDateTime(tt);
我也试过这个
string tt = drpPickuptime.SelectedItem.Text;
DateTime mora = DateTime.Parse(tt, new CultureInfo("fr-FR")).Date;
这1也
DateTime mora = DateTime.ParseExact(drpPickuptime.SelectedItem.Text, "mm", CultureInfo.CurrentCulture);
但错误也未得到纠正。问题是我有一个组合框,我只在那里放了一些将由用户选择的minuts。我想将该值存储在数据库中。但在数据库中,该字段的数据类型是datetime。当我将其更改为字符串时,问题就解决了。但是不可能将该字符串存储在具有所需条件的数据库中。虽然这不是一个好问题,但我已经完成了我的所有努力,并且可以;得到结果。任何人都可以帮助我
答案 0 :(得分:3)
问题是您无法在几分钟内创建有效的DateTime,需要有一个日期(年,月,日)。
如果您只是在数据库中存储分钟,那么我建议使用int
类型。如果你真的必须有一个DateTime,那么你也需要存储一个日期,也许今天的日期是一个选项?在这种情况下,你可以这样做:
int minutes = int.Parse(drpPickuptime.SelectedItem.Text);
DateTime dt = DateTime.Today.AddMinutes(minutes);
答案 1 :(得分:0)
我认为最好的方法是将数据类型更改为bigint,并将其存储为时间跨度。您可以将时间跨度的Ticks属性存储在数据库中,然后当您将其带回时,只需执行TimeSpan.FromTicks(database field)
。要存储它,您可以执行TimeSpan.FromMinutes(your comobobox value)
,您必须将组合框值解析为整数。
答案 2 :(得分:0)
如@Jon所述,您无法在数据库中将分钟存储为DateTime。您必须将值存储为整数。然后,如果您想将这些分钟应用于某个日期值,您可以执行以下操作:
DateTime d = DateTime.Now.AddMinutes(tt);
或者如果您想要过去那些会议记录,您可以这样做:
DateTime d = DateTime.Now.AddMinutes(tt * -1);
您还可以将其作为字符串存储在数据库中。然后在您的代码中,您可以执行int.Parse将其从字符串转换为整数。