以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  asp数据类型转换求教  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=23934)


--  作者:zhineng28
--  发布时间:11/4/2005 8:26:00 AM

--  asp数据类型转换求教
大虾们有用过ASP里面的CInt(),CStr()之内的转换函数吗?
下面我有几个函数请帮忙看看。
我在数据库表里面的UserID的类型是“自动编号”
第一种查询并输出
<%
    Dim rs,strSql,a
    a=1
    strSql="select * From [user] where UserID=1"
    Set rs=db.Execute(strSql)
    response.Write(rs("UserName"))
%>
如果在查询语句strSql="select * From [user] where UserID=1"里面直接以1为条件的话就可以正常
输出数据库里面的输出UserName字段值。

第二种查询并输出
<%
    Dim rs,strSql,a
     a=1
    strSql="select * From [user] where UserID='"&CInt(a)&"'"
    Set rs=db.Execute(strSql)
    response.Write(rs("UserName"))
%>
如果把1赋值给变量a,然后以a为查询语句条件进行查询就会出现下面错误:
Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。
/one/index.asp, 第 43 行

于是我就试着把a=1写成a=CInt(1),也是有错误!

上面的问题请大虾们指教吧!呵呵!


--  作者:noahhu
--  发布时间:1/16/2006 12:22:00 PM

--  
ASP没用过,但是
<%
    Dim rs,strSql,a
    a=1
    strSql="select * From [user] where UserID=1"
    Set rs=db.Execute(strSql)
    response.Write(rs("UserName"))
%>

strSql是一字符串,因而其中的 1 就是一个字符,而非整型变量,或许你可以试试
<%
    Dim rs,strSql,a
    a="1"
    strSql="select * From [user] where UserID="+a   //这里是字符串相连,不知ASP里的语法具体是什么
    Set rs=db.Execute(strSql)
    response.Write(rs("UserName"))
%>

另外,
a="1"
b=CInt(a)
或许是正确的,
因为其他语言中似乎转换函数对原数据类型有要求,如果a本身就是整型了,然后还是转换成整型,不知是否会出错???


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms