【问题标题】:Updating SQL Server DateTime columns in VB.NET在 VB.NET 中更新 SQL Server DateTime 列
【发布时间】:2015-06-25 22:05:17
【问题描述】:

更新记录时,某些DateTime 值可能看起来像2015-06-25T01:35:52Z13 jun 2014

所以在编写查询时我会这样做:

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

(使用 vb.net)

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

【问题讨论】:

  • 尝试更改应用程序中的格式。 SQL Server 应该接受第一种格式。
  • 我在使用第一种格式时也遇到了错误。
  • 删除末尾的Z。文档清楚地表明输入支持 ISO 8601 (msdn.microsoft.com/en-us/library/ms187819.aspx)。
  • 你两次提到错误错误信息是什么?

标签: sql sql-server vb.net


【解决方案1】:

使用Data.SqlClient.SqlCommand.Parameters.Add

MSDN:SqlCommand.Parameters Property

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多