从字符串转换日期和/或时间时转换失败

时间:2012-07-16 08:37:47

标签: asp.net sql vb.net

从字符串转换日期和/或时间时转换失败。 我的类型数据列是时间(7)

我的代码是

Protected Sub insertdata()
        Dim cls As New Class1

        cls.openconnections()
        Dim cmd As New SqlClient.SqlCommand
        cmd.Connection = cls.cn

        cmd.CommandText = "Insert Into Schedule (Room ,Hostel,Tanggal,Jam)"
        cmd.CommandText &= "Values (@room,@hostel,@tanggal,@jam:@menit:00)"

        cmd.Parameters.AddWithValue("@hostel", listhotelx.SelectedValue)
        cmd.Parameters.AddWithValue("@room", listroomx.SelectedValue)
        cmd.Parameters.AddWithValue("@tanggal", Calendar1.SelectedDate.ToShortDateString)
        cmd.Parameters.AddWithValue("@jam", jam.SelectedValue)
        cmd.Parameters.AddWithValue("@menit", menit.SelectedValue)

        cmd.ExecuteNonQuery()
        cls.closeconnection()
    End Sub

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您必须以时间格式hh:mm:ss连接字符串,然后分配给参数。

cmd.CommandText = "Insert Into Schedule (Room ,Hostel,Tanggal,Jam)
                      Values (@room,@hostel,@tanggal,@jam)"

str=String.format("{0}:{1}:00",jam.SelectedValue,menit.SelectedValue)
...
cmd.Parameters.AddWithValue("@jam", str)

答案 1 :(得分:0)

时间sql-Type映射到代码中的TimeSpan Type。 将您的日期时间转换为时间跨度,即:

Calendar1.SelectedDate.TimeOfDay

了解更多信息:http://msdn.microsoft.com/en-us/library/ms131092.aspx

类似的答案:how to use sql server time data type in .net application?