在 VB.NET 中更新 SQL Server DateTime 列

2021-09-16 00:00:00 sql vb.net sql-server

更新记录时,某些 DateTime 值可能类似于 2015-06-25T01:35:52Z13 jun 2014

When updating records some DateTime values may look like 2015-06-25T01:35:52Z or 13 jun 2014

所以当我写查询时:

Dim Query As String = "Update Activities set ActivityDate = '" & theDate & "' where customerid = 10"

(使用 vb.net)

(using vb.net)

但会导致错误.我可以使用 DateTime 转换吗?

but results in error. Is there a DateTime conversion I can use?

推荐答案

Using Data.SqlClient.SqlCommand.Parameters.Add:

MSDN:SqlCommand.Parameters 属性

参数化查询可以为您处理此日期时间转换:

A parameterized query can handle this datetime conversion for you:

Protected Sub UpdateCustomerActivityDate(customerID As Integer, activityDate As DateTime)
    Dim sql As String = "Update Activities set ActivityDate = @activityDate where customerid = @customerID"
    Dim cmd As New Data.SqlClient.SqlCommand(sql)
    cmd.CommandType = CommandType.Text
    cmd.Parameters.Add("@customerID ", Data.SqlDbType.Int).Value = customerID
    cmd.Parameters.Add("@activityDate ", Data.SqlDbType.DateTime).Value = activityDate
    Try
        Using connection As New SqlConnection(YourConnectionString)
            connection.Open()
            cmd.Connection = connection
            cmd.ExecuteNonQuery()
        End Using
    Catch ex As Exception
        Throw ex
    End Try
End Sub

相关文章