【发布时间】:2018-10-01 13:28:26
【问题描述】:
我在 datagridview 中只有时间列我已将时间列格式设置为t,但使用参数化查询将其添加到数据库时出现错误
SqlDbType.Time 溢出。值“955.00:00:00”超出范围。必须 介于 00:00:00.0000000 和 23:59:59.9999999 之间。
这里是绑定参数的命令行
cmd.Parameters.Add(new SqlParameter("@START_TIME", SqlDbType.Time)).Value = DGV_PatientSessions.CurrentRow.Cells["DGV_PatientSessions_StartTime"].Value;
因为当用户以随机格式输入日期时,我需要知道如何强制 或将输入的格式覆盖为特定格式以避免此类问题
或者可能通过按摩改变用户以使用特定格式而不是抛出异常
【问题讨论】:
-
DateTime在 .NET 或 SQL Server 中具有 no 格式。这是一个二进制值。配置您的 grid 以使用特定格式显示日期 -
至于这个具体的错误,与格式无关。
time字段包含一天中的时间,而不是时间间隔。它不能包含'955.00:00:00。您必须在代码中添加验证,以确保网格或数据表不包含无效值 -
@PanagiotisKanavos 我从 sql server 到 gridview 读取日期没有问题 我的问题是当用户在 datagridview 的单元格中输入一个值,然后将该值绑定到参数以将其存储在数据库中时
-
顺便说一句,
time字段的正确类型是TimeSpan -
@PanagiotisKanavos 我会试试 TimeSpan 也许会有所帮助
标签: c# sql-server-2008-r2 .net-4.0