簡體   English   中英

從VB.NET解析DateTime到Oracle存儲過程

[英]Parsing DateTime From VB.NET to Oracle Stored Procedure

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

根據此MSDN論壇 ,Oracle Date數據類型與.Net 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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM