Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 20385|Svare: 0

[Kilde] Oversett alle feltnavnene i DataTable til kinesisk og returner deretter

[Kopier lenke]
Publisert på 29.10.2015 13:50:20 | | | |
Originale data:

Oversatte data:



Generelt er det enkelt å spørre og vise en DataTable i koden, så lenge den forespurte DataTable brukes som DataSource for en bestemt kontroll, er det greit, men feltene i denne DataTable er alle engelske felt, hvordan endrer man dem alle til kinesisk?



Nå kjenner jeg de kinesiske navnene på hvert engelsk felt, og all oversettelsesinformasjon for feltene lagres i en tabell kalt COLUMNTRANSLATION, og SQL-setningen for å lage denne tabellen er:

opprett tabell COLUMNTRANSLATION

(
    ID-NUMMER (10) PRIMÆRNØKKEL,
    KOLONNENAVN VARCHAR2(50), //feltnavn
    OVERSETTELSE VARCHAR2(50) // felt som tilsvarer det kinesiske navnet
)



Legg inn noen data først, slik at det er flere poster i denne tabellen, for eksempel: StudentName tilsvarer "student name".



Nå som jeg har en DataTable med alle feltnavn på engelsk, kan jeg oversette den og returnere den oversatte DataTable ved ganske enkelt å kjøre følgende 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.         }
Kopier koden
Tanken med denne metoden er å konstruere en ny DataTable i henhold til DataTable som skal oversettes: kolonnenavnet til hver kolonne i den nye DataTable er det oversatte kinesiske navnet (hvis det engelske kolonnenavnet ikke oversettes, beholdes det engelske kolonnenavnet, hvis det kan oversettes, blir det oversatt), og etter å ha konstruert feltinformasjonen til den nye DataTable, settes postene fra den gamle DataTable inn i den nye DataTable én etter én.



Hehe, det er en sving... Men fart er fortsatt mulig.







Foregående:EasyUI datagrid-tabeller binder dynamisk feltkolonner
Neste:Slå av Nettleserlenke-funksjonen i Visual Studio 2013
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com