如何在datagridview中正确保存和显示已用时间?

时间:2015-03-16 09:05:05

标签: c# sql datagridview

我想将表单中的已用时间保存到sql表中 计时器在表单加载事件中启动,当我单击保存按钮时尝试使用

保存它
cmd.Parameters.AddWithValue("@duration", textBox3.Text); 

在sql表和duration列数据中保存如下:00:22 这对我的工作来说绝对正确 但在datagridview的持续时间列时间显示如下:03/16/2015 12:22pm

为什么datagridview中的数据转换为完整日期数据而不是原始已用时间?

1 个答案:

答案 0 :(得分:1)

,你没有给我们足够的关于你的问题的信息,但我尽我所能..

  

第一次它是一个浮点数据类型,但我将其更改为nvarchar(255)   为了更好地保存来自c#program

的数据

根据您的数据(00:22),float而非nvarchar似乎都不是数据库中的正确类型。

如果这是时间间隔time type可以是正确的类型,因为它是一天的时间。但是,此time类型不能保持大于24:00值。当您尝试将其插入更大的值时,您将收到错误。

如果此数据可能比24:00更大,我建议先将其解析为TimeSpan,然后将其Ticks property保存到bigint typed列。你的数据库。

您的程序看起来像00:22,并以DateTime.Parse("00:22")的方式将其解析为DateTime,这就是为什么它会在解析时间的情况下生成今天的日期作为数据网格视图中DateTime的日期。

顺便说一下,不要使用AddWithValue方法作为最佳做法。它有时可能 意外结果。使用.Add() method重载来指定SqlDbType及其大小。

进一步阅读: