Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 20385|Válasz: 0

[Forrás] Fordítsd le a DataTable összes mezőnevét kínaira, és térj vissza

[Linket másol]
Közzétéve 2015. 10. 29. 13:50:20 | | | |
Eredeti adatok:

Lefordított adatok:



Általában könnyű lekérdezést indítani és megjeleníteni egy DataTable a kódban, amennyiben a lekérdezett DataTable egy adott vezérlő adatforrásaként működik, az rendben van, de ennek a DataTabelnek a mezői mind angol mezők, hogyan lehet mindet kínaira változtatni?



Most már ismerem az angol mezők kínai nevét, és a mezők összes fordítási információja egy táblában van, amit COLUMNTRANSLATION-nak hívnak, és az SQL utasítás a táblázat létrehozásához a következő:

create table COLUMNTRANSLATION

(
    AZONOSÍTÓSZÁM(10) ELSŐDLEGES KULCS,
    OSZLOPNÉV VARCHAR2(50), //mező név
    FORDÍTÁS VARCHAR2(50) // a kínai névhez tartozó mező
)



Először tegyünk bele néhány adatot, hogy több rekord legyen ebben a táblázatban, például: A StudentName megfelel a "student name"-nek.



Most, hogy van egy DataTable, amelynek minden mezőneve angol nyelven van, lefordíthatom és vissza tudom adni a fordított DataTable-t egyszerűen a következő kód végrehajtásával:

  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.         }
Kód másolása
Ennek a módszernek az ötlete, hogy egy új DataTable létrehozása a fordítandó DataTable megfelelően: az új DataTable oszlopnevei a fordított kínai név (ha az angol oszlop neve nem fordított le, az angol oszlop neve megmarad, ha fordítható, akkor fordítják), és az új DataTable mezőinformációinak megépítése után a régi DataTable rekordjai egyenként kerülnek be az új DataTable-ba.



Hehe, most egy fordulat... De a sebesség még mindig lehetséges.







Előző:EasyUI datagrid táblázatok dinamikusan bind field columns
Következő:Kapcsold ki a böngésző link funkciót a Visual Studio 2013-ban
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com