Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 20385|Răspunde: 0

[Sursă] Traduce toate denumirile câmpurilor din DataTable în chineză și returnează

[Copiază linkul]
Postat pe 29.10.2015 13:50:20 | | | |
Date originale:

Date traduse:



În general, este ușor să interogezi și să afișezi un DataTable în cod, atâta timp cât DataTable interogat este folosit ca DataSource al unui anumit control, este în regulă, dar câmpurile acestui DataTable sunt toate câmpuri în engleză, cum să le schimbi pe toate în chineză?



Acum știu numele chinezești ale fiecărui câmp în engleză, iar toate informațiile de traducere ale câmpurilor sunt stocate într-un tabel numit COLUMNTRANSLATION, iar instrucțiunea SQL pentru a crea acest tabel este:

create table COLUMNTRANSLATION

(
    NUMĂR DE IDENTIFICARE (10) CHEIE PRIMARĂ,
    NUME COLOANĂ VARCHAR2(50), //nume câmp
    TRADUCERE VARCHAR2(50) // câmp corespunzător numelui chinezesc
)



Puneți câteva date mai întâi, astfel încât să existe mai multe înregistrări în acest tabel, de exemplu: StudentName corespunde "numelui studentului".



Acum că am un DataTable cu toate numele câmpurilor în engleză, pot să-l traduc și să returnez DataTable tradus pur și simplu executând următorul cod:

  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.         }
Cod de copiere
Ideea acestei metode este de a construi un nou DataTable conform DataTable ce urmează a fi tradus: numele coloanei fiecărei coloane din noul DataTable este numele chinezesc tradus (dacă numele coloanei în engleză nu este tradus, numele coloanei în engleză este păstrat, dacă poate fi tradus, este tradus), iar după construirea informațiilor despre câmpul noului DataTable, înregistrările vechiului DataTable sunt inserate una câte una în noul DataTable.



Hehe, e o întoarcere... Dar viteza este încă posibilă.







Precedent:Tabelele de grilă de date EasyUI leagă dinamic coloanele câmpului
Următor:Dezactivează funcția Browser Link în Visual Studio 2013
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com