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 };

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值