簡體   English   中英

從VB.NET解析日期以進行SQL插入

[英]Parsing Date from VB.NET for SQL INSERT

我有一個Web應用程序,該應用程序具有要傳遞給ASP.NET服務器(使用VB.NET)然后傳遞給MS SQL Server表的形式。 該表單在多個文本框中使用jQuery datepicker,並將其格式設置為MM/dd/yyyy 然后,表單字段通過PageMethod傳遞到Web服務器,該Web服務器采用各種字段值並將它們組合成SQL UPDATE命令。

每當我嘗試執行SQL命令時,都會不斷出現以下錯誤:

Conversion failed when converting date and/or time from character string.

這是服務器上的代碼:

Using myConn As New System.Data.SqlClient.SqlConnection(CString.ConnectionString)
    myConn.Open()

    Dim cmd As New System.Data.SqlClient.SqlCommand("UPDATE table " & _
                             "SET type = '" & type & "', " & _ 
                                 "target = '" & "@target" & "', " & _
                                 "patient = '" & patient & "', " & _
                                 "dob = '" & "@dob" & "' " & _   
                             "WHERE serial = '" & serial & "'", myConn)


    cmd.Parameters.Add(SqlParameter("@target", Data.SqlDbType.Date))       
    cmd.Parameters.Add(SqlParameter("@dob", Data.SqlDbType.Date))

    If target = "" Then
        cmd.Parameters("@target").Value = Data.SqlTypes.SqlDateTime.Null
    Else
        cmd.Parameters("@target").Value = target
    End If

    If dob = "" Then
        cmd.Parameters("@dob").Value = Data.SqlTypes.SqlDateTime.Null
    Else
        cmd.Parameters("@dob").Value = dob
    End If

    cmd.ExecuteNonQuery()

End Using

注意:我已經嘗試了大約20種不同的解析日期,將其轉換為日期,更改格式的方式,但沒有一種有效。

注意2:結尾處的條件語句只是為了防止將空日期字段存儲為“ 1/1/1900”,而是存儲為實際的SQL NULL值。 從調試來看,這似乎不是問題所在,而是當有實際值時才引發錯誤。

如果有人看到我在做什么錯以及如何解決它,將不勝感激。 在此先感謝您的幫助!

您正在混合參數化和非參數化的部分(為什么不對所有參數進行參數化?)

Dim cmd As New System.Data.SqlClient.SqlCommand("UPDATE table " & _
                         "SET type = '" & type & "', " & _ 
                             "target = @target, " & _
                             "patient = '" & patient & "', " & _
                             "dob = @dob " & _   
                         "WHERE serial = '" & serial & "'", myConn)

你有時間嗎? DateTime字段需要日期和時間。

暫無
暫無

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

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