一个商品查询的功能,在textBox中输入商品一个字或者是商品名称的一个字的拼音字母的第一个字母,就会在ListView中出现相应的商品,而且是那种输入一个,如果有相应的商品就会在ListView中过滤一次,我感觉有点像百度的那种,好像Ajax那种!膜拜一下,高手帮忙!谢谢!

解决方案 »

  1.   

    create function fun_getPY(@str nvarchar(4000)) 
    returns nvarchar(4000) 
    as 
    begin 
    declare @word nchar(1),@PY nvarchar(4000) 
    set @PY='' 
    while len(@str)>0 
    begin 
    set @word=left(@str,1) 
    --如果非汉字字符,返回原字符 
    set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901 
    then (select top 1 PY from ( 
    select 'A' as PY,N'骜' as word 
    union all select 'B',N'簿' 
    union all select 'C',N'错' 
    union all select 'D',N'鵽' 
    union all select 'E',N'樲' 
    union all select 'F',N'鳆' 
    union all select 'G',N'腂' 
    union all select 'H',N'夻' 
    union all select 'J',N'攈' 
    union all select 'K',N'穒' 
    union all select 'L',N'鱳' 
    union all select 'M',N'旀' 
    union all select 'N',N'桛' 
    union all select 'O',N'沤' 
    union all select 'P',N'曝' 
    union all select 'Q',N'囕' 
    union all select 'R',N'鶸' 
    union all select 'S',N'蜶' 
    union all select 'T',N'箨' 
    union all select 'W',N'鹜' 
    union all select 'X',N'鑂' 
    union all select 'Y',N'韵' 
    union all select 'Z',N'咗' 
    ) T 
    where word>=@word collate Chinese_PRC_CS_AS_KS_WS 
    order by PY ASC) else @word end) 
    set @str=right(@str,len(@str)-1) 
    end 
    return @PY 
    end 
    只要在插入的时候调用下这个转首字母的方法。。存入首字母字段内。。
    之后就可以在SQL模糊查询出来
      

  2.   

    在数据库中存入简写,然后用ajax请求读出列表,类似于百度搜索的自动完成
      

  3.   

    这个应该是ajax异步读取出来的。定义一下textBox的属性,加上一个属性,比如:textBox.Attributes.Add("onchange", "ShowInfo(this)");ShowInfo(this) 这个js方法就是ajax异步操作的函数。
      

  4.   

    有过这方面的思考,个人觉得可能是在数据库中的商品名称有两个字段,一个是名称字段(姑且称之为hanzi),另一个是首字母拼音字段(姑且称之为szm)。在textbox的OnChanged事件里面判断输入的是汉字还是英文字母,根据判断结果确定是对hanzi字段进行模糊查询,还是对szm字段进行模糊查询。并将查询结果输出。
      

  5.   

    写个sql传参的模糊查询可以吗?