k80*_*0sg 1 .net sql vb.net asp.net
我试图从我的文本框字段值存储时间,但我得到了这个异常错误,我做错了什么?谢谢!:
Failed to convert parameter value from a TimeSpan to a DateTime.
Run Code Online (Sandbox Code Playgroud)
传递文本框值:
.CamActiveDateFrom = CDate(uitxtCamDateStart.Text.Trim)
Run Code Online (Sandbox Code Playgroud)
我的变量和属性:
Private _camActiveTimeFrom As Nullable(Of TimeSpan)
Public Property CamActiveTimeFrom() As Nullable(Of TimeSpan)
Get
Return Me._camActiveTimeFrom
End Get
Set(ByVal value As Nullable(Of TimeSpan))
Me._camActiveTimeFrom = value
End Set
End Property
Run Code Online (Sandbox Code Playgroud)
参数:
AddInParameter(dbCommand,
"@ActiveTimeFrom", DbType.Time, 6, DBNull.Value)
If (.CamActiveTimeFrom).HasValue Then
dbCommand.Parameters("@ActiveTimeFrom").Value = .CamActiveTimeFrom
End If
Run Code Online (Sandbox Code Playgroud)
DbType.Time 记录为:
表示SQL Server DateTime值的类型.如果要使用SQL Server时间值,请使用
SqlDbType.Time.
因此,要么使用SqlDbType.Time,要么将值设置为DateTime值而不是TimeSpan值.
不可否认,这个映射表显示了DbType.Time映射TimeSpan,因此这里存在一些不一致 - 但如果你可以使用更具体的类型,那只能是好的.
当然,很容易构建一个DateTime从TimeSpan,如果你想-你应该在特定日期决定总是使用(例如2000 1月1日),这样你就可以在数据库中比较值,并有效地得到的只是时间的比较位.
| 归档时间: |
|
| 查看次数: |
4841 次 |
| 最近记录: |