//將所有國(guó)標(biāo)漢字的拼音首字母取出來(lái),放到一個(gè)表中,然后查出.,也windows 98等自帶的//輸入法生成器,逆轉(zhuǎn)化一下拼音輸//入法的碼表
本文章是提供大家參考.并已寫(xiě)成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<strName.Length;num++)//不準(zhǔn)用戶輸入非漢字 if(Convert.ToInt32(strName[num])<=255) {
System.Windows.Forms.MessageBox.Show("你輸入的字符\" "+strName[num].ToString()+"\"不是漢字,請(qǐng)更正","錯(cuò)誤",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Stop); return ""; }
string strSql="select 漢字,首字母 from 拼音首字母"; string strWhere=" where 漢字='"+strName[0].ToString()+"'"; //查詢(xún)漢字,與字母的SQL for(int i=1;i<strName.Length;i++) { strWhere+=" or 漢字='"+strName[i].ToString()+"'"; } strSql+=strWhere; if(con!=null)//看用戶是用那個(gè)名字空間類(lèi). { 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<strName.Length;j++)//按漢字順序找出相關(guān)的字母. { for(int k=0;k<myDataSet.Tables["拼音首字母"].Rows.Count;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
|