Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20385|Odpověď: 0

[Zdroj] Přeložte všechny názvy polí DataTable do čínštiny a vraťte

[Kopírovat odkaz]
Zveřejněno 29.10.2015 13:50:20 | | | |
Původní data:

Přeložená data:



Obecně je snadné dotazovat a zobrazit DataTable v kódu, pokud je dotazovaná DataTable použita jako DataSource určitého ovládacího prvku, je to v pořádku, ale pole této DataTable jsou všechna anglická pole, jak je všechny změnit na čínštinu?



Nyní znám čínské názvy každého anglického pole a všechny překladové informace polí jsou uloženy v tabulce nazvané COLUMNTRANSLATION, přičemž SQL příkaz pro vytvoření této tabulky je:

vytvořit tabulku COLUMNTRANSLATION

(
    IDENTIFIKAČNÍ ČÍSLO(10) PRIMÁRNÍ KLÍČ,
    NÁZEV SLOUPCE VARCHAR2(50), //název pole
    PŘEKLAD VARCHAR2(50) // pole odpovídající čínskému názvu
)



Nejprve do něj vložte několik dat, aby v této tabulce bylo několik záznamů, například: StudentName odpovídá "student name".



Nyní, když mám DataTable se všemi názvy polí v angličtině, mohu ji přeložit a vrátit přeloženou DataTable jednoduše vykonáním následujícího 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írovat kód
Myšlenkou této metody je vytvořit novou DataTable podle DataTable, která má být přeložena: název sloupce každého sloupce nové DataTable je přeložený čínský název (pokud anglický název sloupce není přeložen, anglický název sloupce zůstane zachován, pokud lze přeložit, je přeložen), a po vytvoření informací o poli nové DataTable jsou záznamy staré DataTable vloženy do nové DataTable jeden po druhém.



Hehe, je to zatáčka... Ale rychlost je stále možná.







Předchozí:Tabulky datagrid EasyUI dynamicky vkládají sloupce polí
Další:Vypněte funkci Browser Link ve Visual Studio 2013
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com