Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 20385|Odpoveď: 0

[Zdroj] Preložte všetky názvy polí DataTable do čínštiny a vráťte ich

[Kopírovať odkaz]
Zverejnené 29. 10. 2015 13:50:20 | | | |
Pôvodné údaje:

Preložené údaje:



Vo všeobecnosti je jednoduché dotazovať a zobraziť DataTable v kóde, pokiaľ je dotazovaná DataTable použitá ako DataSource určitého ovládača, je to v poriadku, ale polia tejto DataTable sú všetky anglické polia, ako ich všetky zmeniť na čínštinu?



Teraz poznám čínske názvy každého anglického poľa a všetky prekladové informácie polí sú uložené v tabuľke nazvanej COLUMNTRANSLATION, pričom SQL príkaz na vytvorenie tejto tabuľky je:

vytvoriť tabuľku COLUMNTRANSLATION

(
    IDENTIFIKAČNÉ ČÍSLO(10) PRIMÁRNY KĽÚČ,
    NÁZOV STĹPCA VARCHAR2(50), //názov poľa
    PREKLAD VARCHAR2(50) // pole zodpovedajúce čínskemu názvu
)



Najskôr do nej vložte niekoľko údajov, aby v tejto tabuľke bolo viacero záznamov, napríklad: Meno študenta zodpovedá "meno študenta".



Teraz, keď mám DataTable so všetkými názvami polí v angličtine, môžem ju preložiť a vrátiť preloženú DataTable jednoducho vykonaním nasledujúceho kódu:

  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.         }
Kopírovať kód
Myšlienkou tejto metódy je vytvoriť novú DataTable podľa DataTable, ktorá sa má preložiť: názov stĺpca každého stĺpca novej DataTable je preložený čínsky názov (ak anglický názov stĺpca nie je preložený, anglický názov stĺpca zostáva zachovaný, ak sa dá preložiť, prekladá sa), a po zostavení informácií o poli novej DataTable sa záznamy starej DataTable vkladajú do novej DataTable jeden po druhom.



Hehe, je to zákruta... Ale rýchlosť je stále možná.







Predchádzajúci:Datagrid tabuľky EasyUI dynamicky viažu stĺpce polí
Budúci:Vypnite funkciu Browser Link vo Visual Studio 2013
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com