900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mysql获取姓名拼音首字母_C# 汉字获取拼音首字母 给数据库中的姓名添加首字母...

mysql获取姓名拼音首字母_C# 汉字获取拼音首字母 给数据库中的姓名添加首字母...

时间:2020-03-24 08:59:12

相关推荐

mysql获取姓名拼音首字母_C# 汉字获取拼音首字母 给数据库中的姓名添加首字母...

本方案采用微软官方语言包

ChnCharInfo.dll 用于获取首字母

文件夹中的压缩包为官方包,包括日文、繁体等 。 用法一样

用哪个就安装到C:\Program Files (x86)\Microsoft Visual Studio International Pack 文件夹下

安装完会出现对应的文件夹,拿到.dll结尾的 放入项目的bin文件夹中

)

根据汉子获取拼音

先将 ChnCharInfo.dll 放入项目的bin文件夹中

在程序中引入@using Microsoft.International.Converters.PinYinConverter

@using System;

@using Microsoft.International.Converters.PinYinConverter

1 public classSurNAME2{3 public string name { get; set; }4 public string pinying { get; set; }5}6 ///

7 ///汉字转化为拼音首字母

8 ///

9 /// 汉字 赵钱孙里王

10 /// 首字母

11 public static List GetFirstPinyin(stringstr)12{13 List surnamelist = new List();14 foreach (char obj instr)15{16 SurNAME surname = newSurNAME();17 try

18{19 ChineseChar chineseChar = newChineseChar(obj);20 string t = chineseChar.Pinyins[0].ToString();21 surname.name =obj.ToString();22 surname.pinying= t.Substring(0, 1);23}24 catch

25{26 surname.name =obj.ToString();27}28surnamelist.Add(surname);29}30 returnsurnamelist;31 }

直接调用 var PyList=GetFirstPinyin("赵钱孙李王");

程序使用实例

数据库:mysql

需求:按数据表中的 姓名 添加首字母列

ID 主键

NAME 姓名

FIRSTNAME首字母

1 var SUBNAMELIST = Repository.Current.ExecuteQuery(String.Format("select distinct left(NAME, 1)NAME from {0}_table1 where FIRSTNAME is null", Repository.Current.Name),CommandType.Text).ToList();//数据表中没有首字母的姓

2 if (SUBNAMELIST.Count != 0)3 {//首字母为空的数据 查出的数据为去重后姓名的姓4 var SUBNAME = "";5 foreach (var item inSUBNAMELIST)6 {7 SUBNAME += item["NAME"];//例:赵钱孙李8 }9 var First =GetFirstPinyin(SUBNAME);//调用转拼音的方法10 var SqlSet = "(case left(NAME, 1)";//拼接修改的sql语句 会将表中首字母列为空的数据修改11 var SqlWhere = "find_in_set(left(NAME,1),'";12 foreach (var surnamelist inFirst)13 {14 SqlSet += "when '" + surnamelist.name + "' then '" + surnamelist.pinying + "'";15 SqlWhere += surnamelist.name + ",";16 }17 SqlSet += "end )";18 SqlWhere += "')";19 var upsql = string.Format("update {0}_table1 set FIRSTNAME={1} where FIRSTNAME is null AND {2}", Repository.Current.Name, SqlSet, SqlWhere);20 Repository.Current.ExecuteNonQuery(upsql, CommandType.Text);//执行sql21 };

跪求路过的大神指点!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。