C# 汉字获取拼音首字母,给数据库中的姓名添加首字母
本方案采用微软官方语言包
(下载链接: 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# 汉字获取拼音首字母,给数据库中的姓名添加首字母的更多相关文章
- php根据汉字获取拼音(php基于拼音搜索实现原理)
php根据汉字获取拼音(php基于拼音搜索实现原理) 代码一:获取字符串汉字首字母,兼容GBK和UTF-8 <?php function getfirstchar($s0){ //获取单个汉 ...
- 用SQL语句创建和删除Access数据库中的表;添加列和删除列
用SQL语句创建和删除Access数据库中的表;添加列和删除列 Posted on 2009-08-11 13:42 yunbo 阅读(1240) 评论(0) 编辑 收藏 用SQL语句创建和删除Acc ...
- ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]
由于项目需要,我在搭建了新的开发环境后,需要将之前环境中的ORACLE数据库导出,再导入到新的开发环境下.当导出导入完成后,使用数据库进行添加操作时 发现针对很多表的添加操作报错,具体报错原因描述为: ...
- MYSQL 传汉字获取拼音首字母
--获取单个汉字首字母拼音 --CREATE DEFINER=`by`@`%` FUNCTION `fun_first_pinyin`(`P_NAME` VARCHAR(5)) RETURNS var ...
- 获取手机通讯录放入PinnedSectionListView中,按名字首字母排序,并且实现拨打电话功能。
package com.lixu.tongxunlu; import java.util.ArrayList; import com.lixu.tongxunlu.PinnedSectionListV ...
- 关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案
首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M ...
- mysql 随机获取数据并插入到数据库中
insert into result (user_id, activity_id, number) select user_id, activity_id from `activity_record` ...
- JavaScript 汉字与拼音互转终极方案 附JS拼音输入法
转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...
- 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字 ...
随机推荐
- java 深copy
public static<T> T deepClone(T src) throws IOException, ClassNotFoundException { Object obj = ...
- mysql binlog空间维护
默认情况下,mysql主从同步的binlog日志,会一直保存. 对于如果已同步好的数据,这显然比较浪费资源. 且如果生产环境磁盘太小,随时还会爆掉,所以很有必要作好binlog的空间维护. 以下操作, ...
- 201871010109-胡欢欢《面向对象程序设计(java)》第二周学习总结
开头: 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地 ...
- flask实战-个人博客-数据库-生成虚拟数据 --
3.生成虚拟数据 为了方便编写程序前台和后台功能,我们在创建数据库模型后就编写生成虚拟数据的函数. 1)管理员 用于生成虚拟管理员信息的fake_admin()函数如下所示: personalBlog ...
- postman常用功能汇总(基础必备)
下载安装 下载地址:https://www.getpostman.com/downloads/ 安装:略 接口测试详解 包含get,post(k-v,json,上传文件,cookie) 参考:http ...
- 19-C#笔记-多态性
# 静态多态性 --- ## 1 函数重载 和C++一样. --- ## 2 运算符重载 public static operator public static Box operator+ (Box ...
- npm和yarn的淘宝镜像添加
https://www.cnblogs.com/demonrain/p/8568122.html npm config set registry https://registry.npm.taobao ...
- Debian 安装docker
1 $ curl -fsSL get.docker.com -o get-docker.sh 2 $ sudo sh get-docker.sh --mirror Aliyun
- selenium--页面元素是否可见和可操作
判断元素是否可见 from selenium import webdriver import unittest class Test_Display(unittest.TestCase): def t ...
- C++2.0新特性(三)——<=default,=delete、alias(别名)、noexcept、override、final、以及和const对比>
一.=default,=delete 1.首先我们要回顾一下类默认函数的概念: C++中,当我们设计与编写一个类时,若不显著申明,则类会默认为我们提供如下几个函数: (1)构造函数(A()).(2)析 ...