请各位高手们帮帮忙
存储过程如下:
--===========================
--时间:2006年5月17日
--作者:毛立贤
--功能:产品模糊查询
--===========================
CREATE    PROCEDURE select_all_product
@pro_ varchar(50) ='',
@pro_model varchar(50)='',
@pro_price_1 bigint =0,
@pro_price_2 bigint =10000
AS
begin
if(@pro_=null)
begin
set @pro_=''
end
if(@pro_model=null)
begin
set @pro_model=''
end
select pro_image,pro_,pro_model,pro_et_date,pro_types,pro_net_model,pro_screen,pro_ring,pro_data,pro_vidicon,pro_price
from product_table
where pro_ like '%'+@pro_+'%' and pro_model like '%'+@pro_model+'%' and
      pro_price BETWEEN @pro_price_1 AND @pro_price_2
end
GO
------------------------------------------------------------------------------
程序调用如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>获得数据库数据测试</title>
<style type="text/css">
<!--
body,td,th {
font-family: 宋体;
font-size: 12px;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<body>
<%!//处理字符串的一个常用的方法
public String getStr(String s)
{
if(s==null)
{
s="";
}
try
{
byte a[]=s.getBytes("ISO-8859-1");
s=new String(a);
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
return s;
}
%>
<%

    String sqlServerDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String pro_=request.getParameter("sel_pro_");
pro_=getStr(pro_);
String pro_model=request.getParameter("txt_pro_model");
pro_model=getStr(pro_model);
String price1=request.getParameter("txt_pro_price1");
String price2=request.getParameter("txt_pro_price2");
int pro_price1=0;
int pro_price2=10000;
if(pro_.equals("-请选择品牌-"))
{
pro_="";
}
if(pro_model.equals("pro_model"))
{
pro_model="";
}

try
{
pro_price1=Integer.parseInt(price1);
pro_price2=Integer.parseInt(price2);
}
catch(NumberFormatException e)
{
out.print("<br>请您在价格中输入数字字符!");
}
Connection conn=null;
CallableStatement cs=null;
ResultSet rs=null;
try
{
Class.forName(sqlServerDriver);
conn=DriverManager.getConnection("jdbc:odbc:maolixian","sa","");
//调用存储过程
cs=conn.prepareCall("{call select_all_product(?,?,?,?)}");
cs.setString(1,pro_);
cs.setString(2,pro_model);
cs.setInt(3,pro_price1);
cs.setInt(4,pro_price2);
rs=cs.executeQuery();

out.print("<table width=800 border=1pt cellpadding=0 cellspacing=0>");
out.print("<tr>");
out.print("<td width=100><div align=center>"+"手机图片"+"</div></td>");
out.print("<td width=50><div align=center>"+"品牌"+"</div></td>");
out.print("<td width=50><div align=center>"+"型号"+"</div></td>");
out.print("<td width=50><div align=center>"+"上市时间"+"</div></td>");
out.print("<td width=50><div align=center>"+"手机类型"+"</div></td>");
out.print("<td width=100><div align=center>"+"上网形式"+"</div></td>");
out.print("<td width=50><div align=center>"+"屏幕"+"</div></td>");
out.print("<td width=50><div align=center>"+"铃声"+"</div></td>");
out.print("<td width=100><div align=center>"+"数据格式"+"</div></td>");
out.print("<td width=100><div align=center>"+"摄相头"+"</div></td>");
out.print("<td width=100><div align=center>"+"手机价格"+"</div></td>");
out.print("</tr>");
while(rs.next())
{
out.print("<tr>");
out.print("<td width=100><img src="+rs.getString(1)+" width=100 height=75></td>");
out.print("<td width=50><div align=left>"+rs.getString(2)+"</div></td>");
out.print("<td width=50><div align=left>"+rs.getString(3)+"</div></td>");
out.print("<td width=50><div align=left>"+rs.getDate(4)+"</div></td>");
out.print("<td width=50><div align=left>"+rs.getString(5)+"</div></td>");
out.print("<td width=100><div align=left>"+rs.getString(6)+"</div></td>");
out.print("<td width=50><div align=left>"+rs.getString(7)+"</div></td>");
out.print("<td width=50><div align=left>"+rs.getString(8)+"</div></td>");
out.print("<td width=100><div align=left>"+rs.getString(9)+"</div></td>");
out.print("<td width=100><div align=left>"+rs.getString(10)+"</div></td>");
out.print("<td width=100><div align=left>"+rs.getInt(11)+"</div></td>");
out.print("</tr>");
}
out.print("</table>");
}
catch(Exception e)
{
out.println("<p>程序异常!原因:"+e.getMessage()+"</p>");
}
finally
{
conn.close();
}
%>
</body>
</html>
-------------------------------------------------------------------------
显示结果如下:手机图片 品牌 型号 上市时间 手机类型 上网形式 屏幕 铃声 数据格式 摄相头 手机价格 
-------------------------------------------------------------------------------
但是没有数据呀
请高手们帮帮忙呀!!

解决方案 »

  1.   

    你的存储过程看起来有点错误,改成
    CREATE    PROCEDURE select_all_product(
    @pro_ varchar(50) ,
    @pro_model varchar(50),
    @pro_price_1 bigint ,
    @pro_price_2 bigint
    )
    AS
    begin
    if(@pro_ is null)
    begin
    set @pro_=''
    end
    if(@pro_model is null)
    begin
    set @pro_model=''
    end
    select pro_image,pro_,pro_model,pro_et_date,pro_types,pro_net_model,pro_screen,pro_ring,pro_data,pro_vidicon,pro_price
    from product_table
    where pro_ like '%'+@pro_+'%' and pro_model like '%'+@pro_model+'%' and
          pro_price BETWEEN @pro_price_1 AND @pro_price_2
    end
    GO
    看看