我一直在努力寻找解决方案,但没有运气。我对 VB 和 SQL 还很陌生,但这应该不会太难。我继承了很多代码,没有太多空间来更改 db 属性类型或任何东西。
我正在尝试使用 Razor 中的参数运行 UPDATE 查询,如下所示:
Dim updateCommand = "UPDATE [tblJobRating] SET [ProjectManagement] = @0, [ProjComments] = @1, [Schedule] = @2, [SchedComments] = @3 WHERE [JobRatingID] = @4"
所有有问题的列都需要 INT 值,但我有一个例外,我需要传递一个空值(传递另一个数字或零是不行的)。本质上是用户的“N/A”值。
我从 Post 请求中分配变量,如下所示:
Dim projMgmt = Request.Form('projMgmt')
' ...
Dim sched = Request.Form('sched')
我的“N/A”值现在没有发布任何值(或者它可以是一个字符串,如果需要,我可以检查 IsNumber,我猜)。但是当我调用查询执行时,它输入的值是 0。
db.Execute(updateCommand, projMgmt, projComments, sched, schedComments, ratingId)
它需要为 NULL 值才能使后端正常工作。我尝试过类型检查和传递Nothing
,System.Data.SqlTypes.SqlInt32.Null
等,但它要么给出转换错误,要么设置为 0。我怎样才能正确传递它?
编辑:我遗漏了 db.Execute 方法中的第一个参数,传入了 updateCommand。为清晰起见进行了编辑。