【发布时间】:2016-04-15 21:17:27
【问题描述】:
我正在尝试在 Excel 中创建一个模板,以便客户批量更新 SQL Server 数据库。
棘手的部分是几个数字列,例如,我正在测试的是Estimated_Amt。该值可能为null,我尝试过但仍然无法确定它是否为null,如何传递该值以收取更新存储过程的费用。
这是我设置参数的方式:
Estimated_Amt = .Cells(iRowNo,8)
If (.Cells(iRowNo, 8) = "") Then
cmd.Parameters.Append cmd.CreateParameter("@Estimated_Amt", adVarChar, adParamInput, DBNULL.Value)
Else
cmd.Parameters.Append cmd.CreateParameter("@Estimated_Amt", adVarChar, adParamInput, CStr(Estimated_Amt))
End If
我分别尝试了AdDouble 和AdDecimal,但从来没有成功捕捉到空值或空值,而AdVarchar 仍然无法正常工作
调用过程部分是这样的:
cmd.CommandText = "SP_RIBulkyUpdate @CaseNumber = " & CaseNumber & ", " & _
"@Estimated_Amt = " & Estimated_Amt
关于正确设置输入参数有什么建议吗?谢谢。
【问题讨论】:
标签: sql-server excel vba stored-procedures