gpt4 book ai didi

SQL - 来自不在查询中的字符串的语法错误

转载 作者:行者123 更新时间:2023-12-04 22:28:25 27 4
gpt4 key购买 nike

在我的应用程序中,我在多个位置遇到了一个奇怪的错误。基本上,我使用 SqlManager 和 executeNonQuery() 方法调用数据库中的存储过程,但出现异常:

Incorrect syntax near '44444'

在 Visual Studio 中。问题是,我的值都不等于“44444”,而且该字符串不在存储过程中。当我使用 SQL Server Profiler 开始跟踪时,我没有看到该值。

我尝试用谷歌搜索这个问题,唯一接近这个问题的人在外键中放入空值时遇到了类似的问题(我的值都不为空)。

调用存储过程的函数:

Try
Dim p As New List(Of SQLParametre)()
p.Add(New SQLParametre("@InvcNum", invcNum, SQLParametreType.String))
p.Add(New SQLParametre("@Sale", sale, SQLParametreType.Decimal))
p.Add(New SQLParametre("@Commission", commission, SQLParametreType.Decimal))
p.Add(New SQLParametre("@UpdtDate", DateTime.Today, SQLParametreType.Date))
m_Manager.executeNonQuery("TheSP", p)
Return True
Catch ex As Exception
m_Log.WriteLog("theSP crashed", ex.Message)
Return False
End Try

存储过程:

ALTER PROCEDURE [dbo].[TheSP]
@InvcNum varchar(9),
@Sale money,
@Commission money,
@UpdtDate as smalldatetime
AS
UPDATE tbInvc SET
Sale = Sale + @Sale,
Comm = Comm + @Commission,
updateDate = @UpdtDate
WHERE (Num = @InvcNum)

是否有人遇到过类似的问题,即不在查询/存储过程中的字符串引发语法错误?

编辑:我使用的是 Visual Studio 2012 和 SQL Server Management Studio 2012,并修复了存储过程中更改列名称的拼写错误。

更新

在Management Studio中运行存储过程后,我看到那里也出现了错误,所以错误应该不是在vb代码中。

Management Studio 抛出的错误也与我在 VS2012 中得到的异常不同:

Msg 102, Level 15, State 1, Procedure tbInvc_UTrig, Line 14
Incorrect syntax near '44444'.

最佳答案

根据评论线程:问题似乎与附加到表的触发器有关。

关于SQL - 来自不在查询中的字符串的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14510284/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com