access升迁sql2005后Microsoft VBScript 运行时错误 错误 '800a000d' 类型不匹配: 'CheckUserLogined' /sqlcs/log.asp,行 424 
 
=====================行 424 内容: if CheckUserLogined()=true then     注(true改为1也是这个错误)=====================<%
  userid=request("userid")

  if CheckUserLogined()=true then
  UserNamed=Request.Cookies("asp163")("UserName")
 
 set userq=server.createobject("adodb.recordset")
sql="select * from [user] where UserName='"&UserNamed&"' order by userid desc"
userq.open sql,Conn_User,1,1   
  userw=userq("userid")
 
  If cint(userw)=cint(userid) then
  
  %>
=====================function CheckUserLogined()
dim Logined,Password,rsLogin,sqlLogin
Logined=True
UserName=Request.Cookies("asp163")("UserName")
Password=Request.Cookies("asp163")("Password")
UserLevel=Request.Cookies("asp163")("UserLevel")
if UserName="" then
Logined=False
end if
if Password="" then
Logined=False
end if
if UserLevel="" then
Logined=False
UserLevel=9999
end if
if Logined=True then
username=replace(trim(username),"'","")
               
password=replace(trim(password),"'","")
UserLevel=Cint(trim(UserLevel))
set rsLogin=server.createobject("adodb.recordset")
sqlLogin="select * from " & db_User_Table & " where "  & db_User_Name & "='" & username & "' and " & db_User_Password & "='" & password &"'"
rsLogin.open sqlLogin,Conn_User,1,1
if rsLogin.bof and rsLogin.eof then
Logined=False
else
if password<>rsLogin(db_User_Password) or UserLevel<rsLogin(db_User_UserLevel) then
Logined=False
end if
UserName=rsLogin(db_User_Name)
UserLevel=rsLogin(db_User_UserLevel)
ChargeType=rsLogin(db_User_ChargeType)
UserPoint=rsLogin(db_User_UserPoint)
                    
   if rsLogin(db_User_Valid_Unit)=1 then
ValidDays=rsLogin(db_User_Valid_Num)
   elseif rsLogin(db_User_Valid_Unit)=2 then
ValidDays=rsLogin(db_User_Valid_Num)*30
   elseif rsLogin(db_User_Valid_Unit)=3 then
ValidDays=rsLogin(db_User_Valid_Num)*365
   end if
   ValidDays=ValidDays-DateDiff("D",rsLogin(db_User_BeginDate),now())
end if
rsLogin.close
set rsLogin=nothing
end if
CheckUserLogined=Logined
end function

解决方案 »

  1.   

    sqlLogin="select * from dbo." & db_User_Table & " where " & db_User_Name & "='" & username & "' and " & db_User_Password & "='" & password &"'"
    try
      

  2.   

    倒数第二行的 CheckUserLogined=Logined
    这个写法我怎么不知道
    改成return Logined
      

  3.   

    不行,还是那个错误。改成 改成return Logined 错的就更大了
      

  4.   

    The following linesqlLogin = "select * from " & db_User_Table & " where " & db_User_Name & "='" & UserName & "' and " & db_User_Password & "='" & Password & "'"doesn't make any sense.Is db_User_table a variable that is set anywhere else (outside your current execution context) or is it actually the table name that holds user information?If the latter, then you need to change your code tosqlLogin = "select * from db_User_Table where " & db_User_Name & "='" & UserName & "' and " & db_User_Password & "='" & Password & "'"
      

  5.   

    CheckUserLogined()=true  是判断是否登陆,如果登陆 刚显示““编辑”和“删除””内容,否则不显示其内容。调用文件: function.asp"-->进行判断是否登陆的验证文件,此页面没有问题。下面是代码,提示:  类型不匹配: 'CheckUserLogined' <%
    if CheckUserLogined()=true then
    UserNamed=Request.Cookies("asp163")("UserName")  
    set userq=server.createobject("adodb.recordset")
    sql="select * from [user] where UserName='"&UserNamed&"' order by userid desc"
    userq.open sql,Conn_User,1,1
    userw=userq("userid")
    If cint(userw)=cint(userid) then
    %>
    登陆后要显示的“编辑”和“删除”两个图片
    <%else
    end if%>
    <%else
    end if%>
      

  6.   

    Which line is the error message pointing to?
      

  7.   

     if CheckUserLogined() then
    试试这个 
      

  8.   

    代码太长,没细看, 仔细看下checkuserlogined 函数里 的分支,有没有可能某个分支漏掉了对checkuserlogined的赋值。
      

  9.   


    确实是这个原回,所在文件加了个<!--#include file="inc/function.asp"--> 给checkuserlogined赋值就行了。晕啊