Razor VB - 如果Request变量为空,则传递Null值

时间:2013-01-12 01:15:28

标签: sql vb.net sql-server-2005 razor

我一直在努力寻找解决方案,但没有运气。我是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值才能正常工作。我已尝试过类型检查并传递NothingSystem.Data.SqlTypes.SqlInt32.Null等,但它会将转换错误或设置为0.如何正确传递?

编辑:我遗漏了db.Execute方法中的第一个参数,传入了updateCommand。编辑清晰。

1 个答案:

答案 0 :(得分:1)

问题在于你的vb变量定义。我假设你有一个整数,它需要是一个可以为空的(整数)直到SQL。这也可以写成整数?。