数据库中人名数据量很大,想设计类似于KTV中点歌系统的快速查找人名。
例如周杰伦,依次点击按钮Z,J,L,变可查找到该人。

解决方案 »

  1.   

    你先要在数据库保存姓名拼音首字母  然后输入Textbox 之后达到结果
    至于向数据库输入拼音首字 需要记录一个方法
    看看我的空间
    http://hi.baidu.com/jiang_yy_jiang/blog/item/b102553d21634e07bba167e9.html
      

  2.   

    用一个字典表
    里面是中英文呼唤的
    也就是一个汉字对一个拼音首字母
    比如将汉字列转换为字符 like就好了或者设计数据库的时候 就加一列输入码 里面就是人名各个汉字的拼音的首字母
    用这列检索
      

  3.   

    但是数据库已经建立好了,没有设置人名中文首字母这个字段,那应该怎么处理呢? 
    CREATE function [dbo].[funcGetPY](@str nvarchar(4000)) 
    returns nvarchar(4000) 
    as 
    begin 
    declare @strlen int,@re nvarchar(4000) 
    declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1)) 
    insert into @t(chr,letter) 
      select '吖','A' union all select '八','B' union all 
      select '嚓','C' union all select '咑','D' union all 
      select '妸','E' union all select '发','F' union all 
      select '旮','G' union all select '铪','H' union all 
      select '丌','J' union all select '咔','K' union all 
      select '垃','L' union all select '嘸','M' union all 
      select '拏','N' union all select '噢','O' union all 
      select '妑','P' union all select '七','Q' union all 
      select '呥','R' union all select '仨','S' union all 
      select '他','T' union all select '屲','W' union all 
      select '夕','X' union all select '丫','Y' union all 
      select '帀','Z' 
      select @strlen=len(@str),@re='' 
      while @strlen>0 
      begin 
        select top 1 @re=letter+@re,@strlen=@strlen-1 
          from @t a where chr <=substring(@str,@strlen,1) 
          order by chr desc 
        if @@rowcount=0 
          select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1 
      end 
      return(@re) 
    end 我们使用上面代码,可以查询第一个字,也就是人的姓来查找。现在想实现多个字的查找。