//将所有国标汉字的拼音首字母取出来,放到一个表中,然后查出.,也windows 98等自带的//输入法生成器,逆转化一下拼音输//入法的码表
本文章是提供大家参考.并已写成dll文件给大家使用.
public string Getpingyin(string strName,System.Data.OleDb.OleDbConnection con,System.Data.SqlClient.SqlConnection sqlcon)
{
System.Data.SqlClient.SqlDataAdapter sqlda;
System.Data.OleDb.OleDbDataAdapter oleda;
string strSimple="";
strName=strName.Trim();
System.Data.DataSet myDataSet=new System.Data.DataSet();
if(strName.Length>0)
{
for(int num=0;num if(Convert.ToInt32(strName[num])<=255) { System.Windows.Forms.MessageBox.Show("你输入的字符\" "+strName[num].ToString()+"\"不是汉字,请更正","错误",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Stop); return ""; } string strSql="select 汉字,首字母 from 拼音首字母"; string strWhere=" where 汉字='"+strName[0].ToString()+"'"; //查询汉字,与字母的SQL for(int i=1;i { strWhere+=" or 汉字='"+strName[i].ToString()+"'"; } strSql+=strWhere; if(con!=null)//看用户是用那个名字空间类. { oleda=new System.Data.OleDb.OleDbDataAdapter(strSql,con); oleda.Fill(myDataSet,"拼音首字母"); } else { sqlda=new System.Data.SqlClient.SqlDataAdapter(strSql,sqlcon); sqlda.Fill(myDataSet,"拼音首字母"); } for(int j=0;j { for(int k=0;k { if(strName[j].ToString()==myDataSet.Tables["拼音首字母"].Rows[k]["汉字"].ToString()) { strSimple+=myDataSet.Tables["拼音首字母"].Rows[k]["首字母"].ToString(); break; } } } myDataSet.Clear(); return strSimple;//得到字母 } return ""; } //用法例子 //OleDbConnection con=new .........; //Getpingyin("我",con,null);返回w

