See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 20385|Vastuse: 0

[Allikas] Tõlgi kõik DataTable'i väljade nimed hiina keelde ja tagasta

[Kopeeri link]
Postitatud 29.10.2015 13:50:20 | | | |
Originaalandmed:

Tõlgitud andmed:



Üldiselt on DataTable'i pärimine ja kuvamine koodis lihtne, kui päritud DataTable'i kasutatakse teatud juhtimise DataSource'ina, on see okei, kuid selle DataTable'i väljad on kõik ingliskeelsed väljad, kuidas neid kõiki hiina keelde muuta?



Nüüd tean iga ingliskeelse välja hiina nimesid ja kogu väljade tõlkeinfo on salvestatud tabelisse nimega COLUMNTRANSLATION, ning SQL-lause selle tabeli loomiseks on:

loo tabel COLUMNTRANSLATION

(
    ID-NUMBER (10) ESMAVÕTI,
    VEERU nimi VARCHAR2(50), //välja nimi
    TÕLGE VARCHAR2(50) // väli, mis vastab hiina nimele
)



Pane sinna esmalt mõned andmed, nii et tabelis oleks mitu kirjet, näiteks: StudentName vastab "õpilase nimele".



Nüüd, kui mul on DataTable kõigi väljade nimedega inglise keeles, saan selle tõlkida ja tõlgitud DataTable'i tagastada, lihtsalt käivitades järgmise koodi:

  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.         }
Kopeeri kood
Selle meetodi idee on luua uus andmetabel vastavalt tõlgitavale andmetabelile: iga uue andmetabeli veeru nimi on tõlgitud hiina nimi (kui ingliskeelset veeru nime ei tõlgita, säilitatakse ingliskeelne veeru nimi, kui seda saab tõlkida, siis tõlgitakse) ning pärast uue andmetabeli väliinfo koostamist lisatakse vana andmetabeli kirjed ükshaaval uude andmetabelisse.



Hehe, see on käik... Aga kiirus on siiski võimalik.







Eelmine:EasyUI andmevõrgu tabelid seovad dünaamiliselt välja veergeid
Järgmine:Lülita Visual Studio 2013-s brauseri lingi funktsioon välja
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com