开始做了一个增加的功能是用的Insert代码如下<sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=test" user="sa"
  password="54888666" var="conn"/>
  <sql:update var="order" dataSource="${conn}">
   insert into BookOrder(username,zipcode,phone,creditcard,total) values(?,?,?,?,?)
   <sql:param value='${param["username"]}'/>
   <sql:param value='${param["zipcode"]}'/>
   <sql:param value='${param["phone"]}'/>
   <sql:param value='${param["creditcard"]}'/>
   <sql:param value='50'/>
  </sql:update>
这个完全好使 于是我就拓展了一下 想做个登陆功能 就改成这样<sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=test" user="sa"
  password="54888666" var="conn"/>
  <sql:query var="rs" dataSource="${conn}">
  select * from userinfo where loginName=? and password=?
  <sql:param value='${param["userName"]}' />
  <sql:param value='${param["passWord"]}' />
  </sql:query>
  <c:if test="${rs.rows}">
  欢迎你登陆
  </c:if>
   <c:if test="${!rs.rows}">
  登陆失败
  </c:if>于是就报错
message description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: 
  select * from userinfo where loginName=? and password=?
  
  
  : [Microsoft][SQLServer 2000 Driver for JDBC]The specified SQL type is not supported by this driver.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: 
  select * from userinfo where loginName=? and password=?
  
  
  : [Microsoft][SQLServer 2000 Driver for JDBC]The specified SQL type is not supported by this driver.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.order1_jsp._jspService(order1_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]The specified SQL type is not supported by this driver.请问是sql语句问题么?select 不能参数化? 如果不能怎么改

解决方案 »

  1.   

    参数名对不对应呢? loginName ?  userName ?
      

  2.   

      <sql:param value='${param["userName"]}' />
      <sql:param value='${param["passWord"]}' />
    你先确认参数是否可以获得值!!!!
      

  3.   

      <c:if test="${rs.rows}"> 
    这里改成布尔的怎么改
      

  4.   

    <c:if test="${rs.rows}">  
    这个应该改为
    <c:if test="${rs.rows == ??}"> 吧 
      

  5.   

    <c:forEach var="rows" items="${rs.rows}" varStatus="vs">
    <c:if test="${vs.count>0}">
    登入成功
    </c:if>
    <c:if test="${vs.count<0}">
    登入失败
    </c:if>
    </c:forEach>
      

  6.   

    <sql:query var="rs" dataSource="${conn}">
      select * from userinfo where loginName=? and password=?
      <sql:param value='${param["userName"]}' />
      <sql:param value='${param["passWord"]}' />
      </sql:query>
      <c:if test="${rs.rows}">
      欢迎你登陆
      </c:if>
       <c:if test="${!rs.rows}">
      登陆失败
      </c:if>
    这个rs 只在<sql:query>里 应该是局部变量吧..后面的<c:if>里rs应该没用吧..没搞过这种 只是感觉..错了莫怪
      

  7.   

    <c:forEach var="rows" items="${rs.rows}" varStatus="vs">
    <c:if test="${vs.count>0}">
    登入成功
    </c:if>
    <c:if test="${vs.count<0}">
    登入失败
    </c:if>
    </c:forEach>登陆成功 显示  不成功怎么是空白哦?
      

  8.   


    <c:if   test= "${vs.count <0} ">
    换成 vs.count==0  count没有小于0的.
      

  9.   

    楼主去查下JSTL标签的TEST如何使用的<c:if test="${rs.rows}">
    里面是做判断的,最少有2个值做比较....
    <c:if test="${curpage > 1}">
      <a href="${pageContext.request.contextPath}/getNewsList.do">上一页</a>
    </c:if>