我想将表单中的已用时间保存到sql表中 计时器在表单加载事件中启动,当我单击保存按钮时尝试使用
保存它cmd.Parameters.AddWithValue("@duration", textBox3.Text);
在sql表和duration列数据中保存如下:00:22
这对我的工作来说绝对正确
但在datagridview的持续时间列时间显示如下:03/16/2015 12:22pm
为什么datagridview中的数据转换为完整日期数据而不是原始已用时间?
答案 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
及其大小。
进一步阅读: