我一直在努力使用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')
答案 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.