Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20385|Risposta: 0

[Fonte] Traduci tutti i nomi dei campi della DataTable in cinese e ritorna

[Copiato link]
Pubblicato su 29/10/2015 13:50:20 | | | |
Dati originali:

Dati tradotti:



In generale, è facile interrogare e visualizzare una DataTable nel codice; finché la DataTable interrogata viene usata come DataSource di un certo controllo, va bene, ma i campi di questa DataTable sono tutti campi in inglese, come cambiarli tutti in cinese?



Ora conosco i nomi cinesi di ogni campo inglese, e tutte le informazioni di traduzione dei campi sono memorizzate in una tabella chiamata COLUMNTRANSLATION, e l'istruzione SQL per creare questa tabella è:

create table COLUMNTRANSLATION

(
    NUMERO ID (10) CHIAVE PRIMARIA,
    NOME COLONNA VARCHAR2(50), //nome del campo
    TRADUZIONE VARCHAR2(50) // campo corrispondente al nome cinese
)



Inserisci prima qualche dato, così che ci siano diversi record in questa tabella, ad esempio: StudentName corrisponde a "nome studente".



Ora che ho un DataTable con tutti i suoi nomi di campi in inglese, posso tradurlo e restituire il DataTable tradotto semplicemente eseguendo il seguente codice:

  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.         }
Copia codice
L'idea di questo metodo è costruire una nuova DataTable secondo la DataTable da tradurre: il nome della colonna di ogni colonna della nuova DataTable è il nome cinese tradotto (se il nome della colonna inglese non viene tradotto, il nome della colonna inglese viene mantenuto; se può essere tradotto, viene tradotto), e dopo aver costruito le informazioni sul campo della nuova DataTable, i record della vecchia DataTable vengono inseriti nella nuova DataTable uno per uno.



Eh, è una svolta... Ma la velocità è comunque possibile.







Precedente:Le tabelle datagrid di EasyUI associano dinamicamente le colonne dei campi
Prossimo:Disattiva la funzione Browser Link in Visual Studio 2013
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com