将分钟存储到数据库

时间:2014-03-14 14:08:02

标签: c# sql-server-2008 datetime visual-studio-2012

你好,我是编程的新手,我有以下问题

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。当我将其更改为字符串时,问题就解决了。但是不可能将该字符串存储在具有所需条件的数据库中。虽然这不是一个好问题,但我已经完成了我的所有努力,并且可以;得到结果。任何人都可以帮助我

3 个答案:

答案 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将其从字符串转换为整数。