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

(下载链接: https://pan.baidu.com/s/10I1bhTdFr4-q_xKVHuEzMA 提取码: p3nk

ChnCharInfo.dll 用于获取首字母

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

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

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

官方地址移步---->https://www.microsoft.com/zh-cn/download/details.aspx?id=15251

根据汉子获取拼音

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

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

@using System;
@using Microsoft.International.Converters.PinYinConverter    public class SurNAME
{
public string name { get; set; }
public string pinying { get; set; }
}
/// <summary>
/// 汉字转化为拼音首字母
/// </summary>
/// <param name="str">汉字 赵钱孙里王</param>
/// <returns>首字母 </returns>
public static List<SurNAME> GetFirstPinyin(string str)
{
List<SurNAME> surnamelist = new List<SurNAME>();
foreach (char obj in str)
{
SurNAME surname = new SurNAME();
try
{
ChineseChar chineseChar = new ChineseChar(obj);
string t = chineseChar.Pinyins[].ToString();
surname.name = obj.ToString();
surname.pinying= t.Substring(, );
}
catch
{
surname.name = obj.ToString();
}
surnamelist.Add(surname);
}
return surnamelist;
}

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

程序使用实例

数据库:mysql

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

ID 主键

NAME 姓名

FIRSTNAME首字母

 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();//数据表中没有首字母的姓
if (SUBNAMELIST.Count != )
{//首字母为空的数据 查出的数据为去重后姓名的姓
var SUBNAME = "";
foreach (var item in SUBNAMELIST)
{
SUBNAME += item["NAME"];//例:赵钱孙李
}
var First = GetFirstPinyin(SUBNAME);//调用转拼音的方法
var SqlSet = "(case left(NAME, 1) ";//拼接修改的sql语句 会将表中首字母列为空的数据修改
var SqlWhere = " find_in_set(left(NAME,1),'";
foreach (var surnamelist in First)
{
SqlSet += " when '" + surnamelist.name + "' then '" + surnamelist.pinying + "'";
SqlWhere += surnamelist.name + ",";
}
SqlSet += " end )";
SqlWhere += " ') ";
var upsql = string.Format("update {0}_table1 set FIRSTNAME={1} where FIRSTNAME is null AND {2} ", Repository.Current.Name, SqlSet, SqlWhere);
Repository.Current.ExecuteNonQuery(upsql, CommandType.Text);//执行sql
};

C# 汉字获取拼音首字母,给数据库中的姓名添加首字母的更多相关文章

  1. php根据汉字获取拼音(php基于拼音搜索实现原理)

    php根据汉字获取拼音(php基于拼音搜索实现原理) 代码一:获取字符串汉字首字母,兼容GBK和UTF-8 <?php function getfirstchar($s0){   //获取单个汉 ...

  2. 用SQL语句创建和删除Access数据库中的表;添加列和删除列

    用SQL语句创建和删除Access数据库中的表;添加列和删除列 Posted on 2009-08-11 13:42 yunbo 阅读(1240) 评论(0) 编辑 收藏 用SQL语句创建和删除Acc ...

  3. ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]

    由于项目需要,我在搭建了新的开发环境后,需要将之前环境中的ORACLE数据库导出,再导入到新的开发环境下.当导出导入完成后,使用数据库进行添加操作时 发现针对很多表的添加操作报错,具体报错原因描述为: ...

  4. MYSQL 传汉字获取拼音首字母

    --获取单个汉字首字母拼音 --CREATE DEFINER=`by`@`%` FUNCTION `fun_first_pinyin`(`P_NAME` VARCHAR(5)) RETURNS var ...

  5. 获取手机通讯录放入PinnedSectionListView中,按名字首字母排序,并且实现拨打电话功能。

    package com.lixu.tongxunlu; import java.util.ArrayList; import com.lixu.tongxunlu.PinnedSectionListV ...

  6. 关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案

    首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值     SCHINESE_RADICAL_M ...

  7. mysql 随机获取数据并插入到数据库中

    insert into result (user_id, activity_id, number) select user_id, activity_id from `activity_record` ...

  8. JavaScript 汉字与拼音互转终极方案 附JS拼音输入法

    转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...

  9. 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法

    前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字 ...

随机推荐

  1. Python从零开始——安装与运行

  2. Linux服务之DNS介绍

    DNS-------Domain Name System域名系统 介绍:DNS就是把域名和IP地址联系在一起的服务,有了DNS服务器,你就不用输入IP地址来访问一个网站,可以通过输入网址访问.     ...

  3. <人人都懂设计模式>-装饰模式

    书上,真的用一个人穿衣打拌来讲解装饰模式的呢. from abc import ABCMeta, abstractmethod class Person(metaclass=ABCMeta): def ...

  4. oracle在windows(含客户端工具pl/sql安装)下安装

    安装Oracle服务器端 系统默认创建的数据库名称为orcl,可自行修改. 全局数据库名(用来唯一标示Oracle数据库,每个数据库至少由一个Oracle系统标识符(SID)引用),orcl,后面称为 ...

  5. 12-C#笔记-可空类型

    区别于C++,C#定义的NULL和0不同.更严格. C#的基本类型,区分为可空和不可空 主要涉及两个符号 单问号? 双问号?? 示例如下: using System; namespace Calcul ...

  6. SIFT和SURF特征(草稿)

    (草稿) https://www.cnblogs.com/gavanwanggw/p/7073905.html

  7. Ingress对外暴露端口

    http,https端口 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: kubernetes-dashboard names ...

  8. java 补充(final、static)

    final 固定的 final  修饰类的时候,只能作为子类继承,不能作为父类. final 定义变量时,必须给成员变量赋值.------  1.直接赋值  2.构造方法. final 修饰成员方法时 ...

  9. Chrome DevTools的使用

    一.Chrome DevTools 简介 Chrome 开发者工具是一套内置于Google Chrome中的Web开发和调试工具,可用来对网站进行迭代.调试和分析 手册:Chrome 开发者工具中文手 ...

  10. 渗透测试工具Nmap篇

    Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...