`
tiandirensoon
  • 浏览: 597169 次
文章分类
社区版块
存档分类
最新评论

按拼音模糊匹配查询条件的生成类

 
阅读更多
转载了好几个地方,很难确定最早的出处。
将源码贴出来先。
1usingSystem;
2usingSystem.Text;
3usingSystem.IO;
4
5namespacets
6{
7classtest
8{
9privatestaticstring[]startChars={"","","","","","","","",
"","","","","","","","","","","","","","","","","",""}
;
10privatestaticstring[]endChars={"","","","","","","","",
"","","","","","","","","","","","","","","","","",""}
;
11
12/**////<summary>
13///根据字符和对应的中文字符,转成SQL查询条件
14///</summary>
15///<paramname="cChar">要转化的字符,[A-Z]</param>
16///<paramname="strFieldName">条件左值</param>
17///<returns>SQL条件</returns>
18///<remarks>Sxf2001-1-4*****JY2002-1-4</remarks>

19publicstaticstringGetCharCondition(charcChar,stringstrFieldName)
20{
21stringstrWord;
22intIndex=(int)(char.ToUpper(cChar))-(int)'A';
23if(Index>=0&&Index<26)
24strWord=startChars[Index];
25else
26strWord=startChars[0];
27
28//returnstring.Format("(({0}>='{1}'AND{0}<'[')OR({0}>='{3}'AND{0}<'{{')OR{0}>='{2}')",
29//strFieldName,char.ToUpper(cChar),strWord,char.ToLower(cChar));
30
31returnstring.Format("(({0}>='{3}'AND{0}<='zzzzzzzz')OR{0}>='{2}')",
32strFieldName,char.ToUpper(cChar),strWord,char.ToLower(cChar));
33}

34
35/**////<summary>
36///将指定字段值的每个字符分割,这样可以生成同音查询的SQL
37///</summary>
38///<paramname="fieldName">字段名</param>
39///<paramname="fieldValue">字段值</param>
40///<returns>生成的可以进行同音查询的SQL</returns>

41publicstaticstringGetCharFullCondition(stringfieldName,stringfieldValue)
42{
43StringBuildersql=newStringBuilder(1024);
44inti=1;
45foreach(charcinfieldValue)
46{
47if(i>1)
48sql.Append("AND");
49intindex=(int)(char.ToUpper(c))-(int)'A';
50stringstartWord,endWord;
51if(index>=0&&index<26)
52{
53startWord=startChars[index];
54endWord=endChars[index];
55}

56else
57{
58startWord=startChars[0];
59endWord=endChars[0];
60}

61stringsubStr=String.Format("SUBSTRING({0},{1},{2})",fieldName,i,1);
62sql.AppendFormat("({0}BETWEEN'{1}'AND'{2}')",subStr,startWord,endWord);
63++i;
64}

65
66returnsql.ToString();
67}

68}

69}
分享到:
评论

相关推荐

    Html5新标签datalist实现输入框与后台数据库数据的动态匹配

    HTML5新增的标签datalist实现输入中文/拼音首字母时,自动进入数据库模糊查询,并返回相应的结果,生成datalist,由于在输入框中的输入内容发生变化时,datalist会自动触发下拉框,解决方案非常好,下面通过本文给...

    经典SQL脚本大全

    │ 生成查询的模糊匹配字符串.sql │ 简繁转换.sql │ 统计一个表中某个字符出现最多的字母.sql │ 非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音...

    Sqlserver2000经典脚本

    -格式化.sql │ 得到一个字符串在另一个字符串中出现的次数.sql │ 数字转换成十六进制.sql │ 比较第一与第二个字符串,是否有连续的5个字符相同.sql │ 生成查询的模糊匹配字符串.sql │ 简繁...

    人力资源管理软件(完全免费)

    解决了员工管理自定义条件查询数据的显示问题(感谢中秋月) 福利管理的员工选择做了优化(感谢天隼)(人力资源软件) 2008-03-04 人力资源管理软件做了以下改进 人力资源管理软件增加了新的个税税率配置数据,如果...

    1345个易语言模块

    E库多条件查询模块.ec E库模糊查询模块.ec E 电子琴.ec fhhs.ec filetime.ec FlyFox_hotkey.ec FlyFox_ram.ec font.ec Force.ec ForceSample.ec freemark 模块_取文件.ec ftp文件操作模块.ec gdiplus类模块.ec ...

    1350多个精品易语言模块

    E库多条件查询模块.ec E库模糊查询模块.ec E 电子琴.ec fhhs.ec filetime.ec FlyFox_hotkey.ec FlyFox_ram.ec font.ec Force.ec ForceSample.ec freemark 模块_取文件.ec ftp文件操作模块.ec gdiplus类模块.ec ...

    SuperNotepad

    先选中要整体右移的文字段按[Ctrl+J]或右键菜单中选[自定义替换],在对话框中输入[\par,\par\tab\tab],不包括左右[]括号(工具栏中有此功能) 2.如何查看文字的颜色、字体、编码?选中文本,在状态栏中查看 3.计算...

Global site tag (gtag.js) - Google Analytics