Passing Time Value from ASP.Net VB page to SQL 2008 Time Parameter

I have a text box on an ASP.net page that will be used to enter a time that will be stored in a SQL 2008 Time format data field.  Using the code below I get the message:  "Failed to convert parameter value from a String to a TimeSpan"

VB.Net does not seem to have a variable type to go with SQL 2008's new Time type.

Can anyone suggest how to get this to work... Change from string to another type on the vb.net side... change the Data.SqlDBType.Time to something else?

More info:  It works if I try to save any of the following:  12:45, 22:00, etc.  It does not work if I try to save 12:45PM.  I can make it work if I use 24 hour format, but I wonder if there's a way to save it using AM/PM?





Dim strHoseTestOrRepairTime As String = Nothing
 
            If Len(Trim(Me.textTestOrRepairTime.Text)) > 0 Then
                strHoseTestOrRepairTime = Trim(Me.textTestOrRepairTime.Text)
            Else
                strHoseTestOrRepairTime = "00:00"
            End If
 
            Dim myParameterTestOrRepairTime As New SqlParameter("@CHTRTime", Data.SqlDbType.Time)
            myParameterTestOrRepairTime.Direction = Data.ParameterDirection.Input
            myParameterTestOrRepairTime.Value = strHoseTestOrRepairTime
            myCommand.Parameters.Add(myParameterTestOrRepairTime)

Open in new window

LVL 4
TimSledgeAsked:
Who is Participating?
 
TimSledgeConnect With a Mentor Author Commented:
I found the answer myself.

You can capture, for example, 10:45PM as a string, the place it in the parameter using this format:  myParameterTestOrRepairTime.Value = DateTime.Parse("10:45PM").TimeOfDay


   If Len(Trim(Me.textTestOrRepairTime.Text)) > 0 Then
                strHoseTestOrRepairTime = Trim(Me.textTestOrRepairTime.Text)
            Else
                strHoseTestOrRepairTime = "00:00:00"
            End If
 
            Dim myParameterTestOrRepairTime As New SqlParameter("@CHTRTime", Data.SqlDbType.Time)
            myParameterTestOrRepairTime.Direction = Data.ParameterDirection.Input
            myParameterTestOrRepairTime.Value = DateTime.Parse(strHoseTestOrRepairTime).TimeOfDay
            myCommand.Parameters.Add(myParameterTestOrRepairTime)

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.