从VB.NET解析DateTime到Oracle存储过程

时间:2012-07-04 02:03:50

标签: sql vb.net oracle

我一直在努力使用Oracle的日期时间功能。

我有正确运行并且运行良好的存储过程但是我不知道如何从VB.net解析日期以便存储过程可以从VB.net接收值?

有没有人知道如何解析VB.net中的值,在这种情况下我会谈论日期时间,所以它将是一小时,二秒和一分钟。

非常感谢

这是.NET代码

Try
            Dim conn As New OracleConnection(connectionString(data(0), data(1), data(2)))
            conn.Open()
            Dim cmd As New OracleCommand
            cmd.Connection = conn
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "transactionme"
            Dim p1 As OracleParameter
            Dim p2 As OracleParameter
            Dim p3 As OracleParameter
            Dim p4 As OracleParameter
            Dim p5 As OracleParameter
            Dim p6 As OracleParameter
            Dim p7 As OracleParameter
            Dim p8 As OracleParameter
            Dim p9 As OracleParameter
            Dim p10 As OracleParameter
            p1 = cmd.Parameters.Add("param1", OracleDbType.NChar)
            p1.Value = ""
            p2 = cmd.Parameters.Add("param2", OracleDbType.NChar)
            p2.Value = "STD2"
            p3 = cmd.Parameters.Add("param3", OracleDbType.NChar)
            p3.Value = "RK001"
            p4 = cmd.Parameters.Add("param4", OracleDbType.NChar)
            p4.Value = "EK001"
            p5 = cmd.Parameters.Add("param5", OracleDbType.Date)
            p5.Value = "here is the problem"
            p6 = cmd.Parameters.Add("param6", OracleDbType.Date)
            p6.Value = "here is the problem"
            p7 = cmd.Parameters.Add("param7", OracleDbType.Date)
            p7.Value = "here is the problem"
            p8 = cmd.Parameters.Add("param8", OracleDbType.NChar)
            p8.Value = "Master Card"
            p9 = cmd.Parameters.Add("param9", OracleDbType.Int32)
            p9.Value = 30000

            Dim n As Integer
            n = cmd.ExecuteNonQuery()
            MessageBox.Show(n.ToString)
            conn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

参数应该是这样的,尝试了很多像concat和其他的东西

to_date('2012-01-23 22:00', 'YYYY-MM-DD hh24:mi')

1 个答案:

答案 0 :(得分:1)

根据此MSDN Forum Posting,Oracle Date数据类型对应于.Net Date数据类型。

从上面链接:

  

参数值应该是Date数据值而不是字符串。由于基础表示是数字,因此无需在将参数作为参数传递时格式化日期。

p5 = cmd.Parameters.Add("param5", OracleDbType.Date)  
p5.Value = Convert.ToDateTime("Your Date here")  

编辑尝试此操作以解析您的日期/时间信息并转换您的字符串。

  Private Function GetDateTime(dateFormat As String) As Date
    Dim split() As String = New String() {","}

    Return Convert.ToDateTime(dateFormat.Split(split, 2, StringSplitOptions.None)(0))

End Function

用法:

p5.Value = GetDateTime("2012-01-23 22:00, YYYY-MM-DD hh24:mi") 'or what ever your string variable is.