需要了解错误消息

时间:2016-03-30 16:54:19

标签: sql asp.net vb.net

大家好我在ASP.NET中遇到错误(VB背后的代码),我不知道它意味着什么。 当我执行下面的代码来更新数据库中的表时,出现错误

Dim v_command1 As New SqlCommand
Dim v_sqlcode1 As String
v_sqlcode1 = "Update Session SET Endtime = DATEADD(Hour,'" & DRPL_DURATION.SelectedValue & "','" & TXTBX_START.Text & "') WHERE  SessionID = ('" & TXTBOX_SESSIONID.Text & "')"
        v_sqlconn.Open()

当我决定更改会议的持续时间时,此代码应该允许我更新会议的结束时间。  我得到的错误是:

Additional information: Argument data type varchar is invalid for argument 2 of dateadd function.

是否有人知道此错误消息的含义。

由于

3 个答案:

答案 0 :(得分:3)

正如错误所述,您不能将varchar数据类型用于DATEADD()的第二个参数。这是looking for an integer

如果您传递的值是整数,只需删除单引号:

"[...] Hour, " & DRPL_DURATION.SelectedValue & ", [...]"

如果它不是一个整数并且你实际上是在试图传递一串文字,那么你需要重新思考你正在做什么,因为你无法添加文本约会。

注意:我还强烈建议使用参数化查询,而不是像这样直接连接值。这会在您的代码中引入SQL注入漏洞,该漏洞由查询参数消除。此外,当您将值传递给查询引擎并让引擎决定如何管理数据类型时,您会发现与列数据类型相关的错误更为罕见。

答案 1 :(得分:1)

https://msdn.microsoft.com/en-CA/library/ms186819.aspx

Dateadd正在寻找一个数字作为第二个争论而你传递的是一个字符串(varchar)。

答案 2 :(得分:0)

此错误消息与DATEADD(..).的第二个参数相关联。您需要使用整数(数字)值。

有关详细信息,请参阅文档DATEDD