空字符串导致类型不匹配

时间:2012-07-26 14:03:37

标签: asp-classic vbscript ado

我正在编写一个旧的asp页面,将Session变量插入数据库,以将它们传输到ASP.NET应用程序。所以我循环遍历它们并使用存储过程将它们插入到db中。其中一个是空值字符串作为值,插入它时失败的是:

Microsoft VBScript运行时错误'800a000d'

类型不匹配

我已经将它们写成了key = value = vartype形式的页面,而vartype确实是8,一个字符串。它的GoBack系列失败了:

User_id=2029=8
GoBack==8
ID_Reps=12345726=8

这是电话:

.Parameters.Append .CreateParameter("@SessionValue", adVarChar, adParamInput, 4000, Session(objItem))

插入时我宁愿不将其转换为空字符串。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

两个选项是将Session(objItem)替换为:

If(Session(objItem), DBNull.Value)

If(Session(objItem), String.Empty)

答案 1 :(得分:0)

我刚刚使用null默认值使参数可选,并且如果值为null则绕过添加它。