Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 20385|Antwoord: 0

[Bron] Vertaal alle veldnamen van de DataTable naar het Chinees en geef het terug

[Link kopiëren]
Geplaatst op 29-10-2015 13:50:20 | | | |
Originele gegevens:

Vertaalde gegevens:



Over het algemeen is het eenvoudig om een DataTable in de code te bevragen en weer te geven, zolang de geraadpleegde DataTable wordt gebruikt als DataSource van een bepaalde controle, is het prima, maar de velden van deze DataTable zijn allemaal Engelse velden, hoe verander je ze allemaal naar Chinees?



Nu ken ik de Chinese namen van elk Engels veld, en alle vertaalinformatie van de velden wordt opgeslagen in een tabel, genaamd COLUMNTRANSLATION, en de SQL-instructie om deze tabel te maken is:

maak tabel COLUMNTRANSLATION

(
    ID-NUMMER (10) PRIMAIRE SLEUTEL,
    KOLOMNAAM VARCHAR2(50), //veldnaam
    VERTALING VARCHAR2(50) // veld dat overeenkomt met de Chinese naam
)



Plaats er eerst een paar gegevens in, zodat er meerdere records in deze tabel staan, bijvoorbeeld: StudentName komt overeen met "student name".



Nu ik een DataTable heb met al zijn veldnamen in het Engels, kan ik deze vertalen en de vertaalde DataTable teruggeven door simpelweg de volgende code uit te voeren:

  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.         }
Code kopiëren
Het idee van deze methode is om een nieuwe DataTable te construeren volgens de te vertalen DataTable: de kolomnaam van elke kolom van de nieuwe DataTable is de vertaalde Chinese naam (als de Engelse kolomnaam niet wordt vertaald, blijft de Engelse kolomnaam behouden, als deze kan worden vertaald, wordt deze vertaald), en na het construeren van de veldinformatie van de nieuwe DataTable worden de records van de oude DataTable één voor één in de nieuwe DataTable ingevoegd.



Hehe, het is een wending... Maar snelheid is nog steeds mogelijk.







Vorig:EasyUI datagrid-tabellen binden veldkolommen dynamisch
Volgend:Schakel de Browser Link-functie uit in Visual Studio 2013
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com