服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - ASP.NET教程 - ASP.NET实现按拼音码模糊查询的方法

ASP.NET实现按拼音码模糊查询的方法

2019-12-21 13:50lijiao ASP.NET教程

我们在做数据录入或者查询的时候,经常需要实现按用户输入的拼音码进行数据的模糊查询功能,本文为大家介绍ASP.NET如何实现按拼音码模糊查询,需要的朋友可以参考下

整个过程分为两部分:生成拼音码字段、按拼音码进行模糊查询。

批量生成拼音码字段的实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
protected void Button1_Click1(object sender, EventArgs e)
 {
 string strSQL;
 strSQL = "select mc from TEST001";
 IDataReader dr = dac.DataReaderQuery(strSQL);
 while (dr.Read())
 {
  string mc=dr["mc"].ToString();
  string pym = StrToPinyin.GetChineseSpell(mc);
  if (pym.Length > 6)
  {
  pym = pym.Substring(0, 6);//我这里只去了6位,大家可以看自己爱好而定!
  }
  string updateSql = "update TEST001 set pym ='" + pym + "' where mc='" + mc + "'";
 
  dac.update(updateSql);
 }
 dr.Close();
 Response.Write("<script>alert('操作成功!');</script>");
 }
 
StrToPinyin 类的GetChineseSpell方法(取汉字拼音字母):
 
public static string GetChineseSpell(string strText)
 {
 if (strText == null || strText.Length == 0)
  return strText;
 System.Text.StringBuilder myStr = new System.Text.StringBuilder();
 foreach (char vChar in strText)
 {
  // 若不是汉字则直接输出
  if ((int)vChar < 19968 || (int)vChar > 40869)
  {
  myStr.Append(char.ToUpper(vChar));
  }
  else if ((int)vChar >= 19968 && (int)vChar <= 40869)
  {
  // 若字符Unicode编码在编码范围则 查汉字列表进行转换输出
  foreach (string strList in strChineseCharList)
  {
   if (strList.IndexOf(vChar) > 0)
   {
   myStr.Append(strList[0]);
   break;
   }
  }
  }
 }
 return myStr.ToString();
 }

按拼音码进行模糊查询:

这个简单了,用select查询,where条件用LIKE即可,相信大家一定都会操作。

相信以后在实现按用户输入的拼音码进行数据的模糊查询功能的时候,大家就可以运用今天所学的ASP.NET实现按拼音码模糊查询了。

延伸 · 阅读

精彩推荐