怎么会将 varchar 值 转换成数据类型 int 时失败啊?

raynichine 2008-04-17 10:42:19
怎么老提醒“将varchar值转换成数据型int时失败”啊。tks~

提示错误如下:
[qutoe]Microsoft SQL Native Client 错误 '80040e07'

在将 varchar 值 'grid' 转换成数据类型 int 时失败。

/labgo/bbs/FourmName.asp,行 30 (红色那段)[/quote]

<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<%
dim rs,strsql20,rs2,strsql2,grid
set rs=Server.CreateObject("ADODB.RecordSet")
strSql = "Select * From [Groups] Order by GroupID "
rs.open strSql,conn,3,3

do while not(rs.eof or err)
grid = cint(rs("GroupID"))
response.Write("<li><strong><a href=de.asp?GroupID="&rs("GroupID")&">"&rs("GroupName")&"</a></strong></li>")


strsql2= "Select * From [Forums] Where GroupID='grid'"
Set rs2=Conn2.Execute(strSql2)
do while not (rs2.eof or err)
response.Write("<br> <a href=ShowForum.asp?ForumID="&rs2("ForumID")&">"&rs2("ForumName")&"</a>")

rs2.movenext
loop

rs.movenext
loop
%>

</table>
...全文
2362 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
raynichine 2008-04-18
首先非常谢谢上面两位大大。
初学者对连接符&的确很头痛。我开始时就试过好多种,总是错误...sigh...

GroupID在SQL表格里面是定义为int型的。

我现在把grid = cint(rs("GroupID")) 这句去掉了。

再试验的结果如下:
引用
如果GroupID是字符类型的话 则必须
strsql2="select * from [Forums] where GroupID='"&grid&"'"
如果是数字的话
strsql2="select * from [Forums] where GroupID='&grid&'"

竟然是采用字符类型的 GroupID='"&grid&"'" 就可以了。

引用
如果GroupID是INT类型的话改成
strsql2= "Select * From [Forums] Where GroupID="&grid
如果GroupID是VARCHAR或者CHAR类型改成
strsql2= "Select * From [Forums] Where GroupID='"&grid&"'"

这两个都可以了。

莫非rs("Group")即是int型,又是varchar的字符型?

(我还是有点头昏,因为一开始把上面两位大大的选择都copy进去,还是错误。后来不知再怎么胡乱弄弄的才成功。并且无论按int还是varchar格式处理都成功。——因为电脑不慎重启,想Ctrl+Z回去看看过程都不行了)
回复
小逗狗 2008-04-17
strsql2= "Select * From [Forums] Where GroupID='grid'" 有问题
如果GroupID是INT类型的话改成
strsql2= "Select * From [Forums] Where GroupID="&grid
如果GroupID是VARCHAR或者CHAR类型改成
strsql2= "Select * From [Forums] Where GroupID='"&grid&"'"

如果GroupID中有非数字的话CINT就会报错
回复
rebing 2008-04-17
首先你的GroupID是什么类型的 如果是字符型必须保证字符里面没有除数字以外的其他字符 否则肯定会出错
如果是数值 则不用进行转换
还有 strsql2= "Select * From [Forums] Where GroupID='grid'" 也有错误
如果GroupID是字符类型的话 则必须
strsql2="select * from [Forums] where GroupID='"&grid&"'"
如果是数字的话
strsql2="select * from [Forums] where GroupID='&grid&'"
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-17 10:42
社区公告
暂无公告