Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 20385|Odgovoriti: 0

[Vir] Prevedi vsa imena polj DataTable v kitajščino in vrni

[Kopiraj povezavo]
Objavljeno na 29. 10. 2015 13:50:20 | | | |
Izvirni podatki:

Prevedeni podatki:



Na splošno je enostavno poizvedovati in prikazati DataTabelo v kodi, dokler je poizvedbena DataTabela uporabljena kot DataSource določenega kontrolnika, je to v redu, vendar so polja te DataTable vsa angleška polja, kako jih spremeniti v kitajščino?



Zdaj poznam kitajska imena vsakega angleškega polja in vse prevodne informacije polj so shranjene v tabeli, imenovani COLUMNTRANSLATION, SQL pa je ukaz za ustvarjanje te tabele naslednji:

ustvari tabelo COLUMNTRANSLATION

(
    PRIMARNI KLJUČ Z IDENTIFIKACIJSKO ŠTEVILKO(10),
    IME STOLPCA VARCHAR2(50), //ime polja
    PREVOD VARCHAR2(50) // polje, ki ustreza kitajskemu imenu
)



Najprej vnesite nekaj podatkov, da je v tej tabeli več zapisov, na primer: ŠtudentName ustreza "ime študenta".



Zdaj, ko imam DataTable z vsemi imeni polj v angleščini, jo lahko prevedem in vrnem prevedeno DataTabelo preprosto z izvajanjem naslednje kode:

  1. /// <summary>
  2.         /// 将DataTable的字段名全部翻译为中文
  3.         /// </summary>
  4.         /// <param name="table">待翻译的DataTable</param>
  5.         /// <returns></returns>
  6.         public DataTable TranslateDataTable(DataTable table)
  7.         {
  8.             DataTable dt = new DataTable();
  9.             dt.TableName = "TempTable";

  10.             if (table != null && table.Rows.Count > 0)
  11.             {
  12.                 //先为dt构造列信息
  13.                 foreach (DataColumn column in table.Columns)
  14.                 {
  15.                     string name = GetColumnName(column.ColumnName);
  16.                     dt.Columns.Add(name);
  17.                 }

  18.                 for (int i = 0; i < table.Rows.Count; i++)
  19.                 {
  20.                     DataRow NewRow = dt.NewRow();
  21.                     DataRow row = table.Rows[i];

  22.                     for (int j = 0; j < dt.Columns.Count; j++)
  23.                     {
  24.                         NewRow[j] = row[j].ToString();
  25.                     }

  26.                     dt.Rows.Add(NewRow);
  27.                 }
  28.             }
  29.             return dt;
  30.         }

  31.         /// <summary>
  32.         /// 得到列名称的别名
  33.         /// </summary>
  34.         /// <param name="columnName"></param>
  35.         /// <returns></returns>
  36.         private string GetColumnName(string columnName)
  37.         {
  38.             string sqlString = " Select TRANSLATION from COLUMNTRANSLATION where COLUMNNAME = '" + columnName.ToUpper() + "'";

  39.             object s = dao.ExecuteScalar(sqlString);
  40.             string name = (s == null) ? columnName : s.ToString(); //如果此英文字段有翻译,则返回其中文翻译,若无,则保留此英文翻译。
  41.             return name;
  42.         }
Kopiraj kodo
Ideja te metode je sestaviti novo DataTabelo glede na podatkovno tabelo, ki jo želimo prevesti: ime stolpca vsakega stolpca nove DataTabele je prevedeno kitajsko ime (če angleško ime stolpca ni prevedeno, se angleško ime stolpca ohrani, če ga je mogoče prevesti, se prevede), in po sestavi informacij o polju nove DataTabele se zapisi stare DataTabele vstavijo v novo DataTabelo enega za drugim.



Hehe, zdaj je zavoj... A hitrost je še vedno mogoča.







Prejšnji:EasyUI podatkovne tabele dinamično vežejo stolpce polj
Naslednji:Izklopite funkcijo Browser Link v Visual Studio 2013
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com