Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 20385|Atsakyti: 0

[Šaltinis] Išverskite visus DataTable laukų pavadinimus į kinų kalbą ir grąžinkite

[Kopijuoti nuorodą]
Paskelbta 2015-10-29 13:50:20 | | | |
Pradiniai duomenys:

Išversti duomenys:



Paprastai kode lengva užklausti ir rodyti DataTable, jei užklausa DataTable naudojama kaip tam tikro valdiklio DataSource, tai gerai, bet visi šios DataTable laukai yra angliški laukai, kaip juos visus pakeisti į kinų?



Dabar žinau kiekvieno angliško lauko kiniškus pavadinimus, o visa laukų vertimo informacija saugoma lentelėje, vadinamoje COLUMNTRANSLATION, o SQL sakinys šiai lentelei sukurti yra:

sukurti lentelę COLUMNTRANSLATION

(
    ID NUMERIS [10] PIRMINIS RAKTAS,
    COLUMNNAME VARCHAR2(50), //lauko pavadinimas
    TRANSLATION VARCHAR2(50) // laukas, atitinkantis kinišką pavadinimą
)



Pirmiausia įdėkite keletą duomenų, kad šioje lentelėje būtų keli įrašai, pavyzdžiui: StudentName atitinka "studento vardą".



Dabar, kai turiu DataTable su visais laukų pavadinimais anglų kalba, galiu ją išversti ir grąžinti išverstą DataTable tiesiog vykdydamas šį kodą:

  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.         }
Kopijuoti kodą
Šio metodo idėja yra sukurti naują DataTable pagal verčiamą DataTable: kiekvieno naujos DataTable stulpelio pavadinimas yra išverstas kiniškas pavadinimas (jei angliškas stulpelio pavadinimas nėra išverstas, išlaikomas angliškas stulpelio pavadinimas, jei jį galima išversti, jis išverčiamas), o sukonstravus naujos DataTable lauko informaciją, senosios DataTable įrašai po vieną įterpiami į naują DataTable.



Hehe, atėjo eilė... Tačiau greitis vis tiek įmanomas.







Ankstesnis:"EasyUI" duomenų tinklelio lentelės dinamiškai susieja laukų stulpelius
Kitą:Naršyklės saito funkcijos išjungimas programoje "Visual Studio 2013"
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com