Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 20385|Odpowiedź: 0

[Źródło] Przetłumacz wszystkie nazwy pól DataTable na chiński i wróć

[Skopiuj link]
Opublikowano 29.10.2015 13:50:20 | | | |
Oryginalne dane:

Dane przetłumaczone:



Generalnie łatwo jest zapytać i wyświetlić DataTable w kodzie, o ile zapytany DataTable jest używany jako DataSource danej kontrolki, jest to w porządku, ale pola tej DataTable to wszystkie pola angielskie, jak zmienić je wszystkie na chińskie?



Teraz znam chińskie nazwy każdego angielskiego pola, a wszystkie informacje o translacji pól są przechowywane w tabeli o nazwie COLUMNTRANSLATION, a instrukcja SQL tworząca tę tabelę to:

utwórz tabelę COLUMNTRANSLATION

(
    NUMER ID/10 KLUCZ GŁÓWNY,
    NAZWA KOLUMNY VARCHAR2(50), //nazwa pola
    TŁUMACZENIE VARCHAR2(50) // pole odpowiadające chińskiej nazwie
)



Najpierw wpisz kilka danych, aby w tej tabeli było kilka rekordów, na przykład: StudentName odpowiada "student name".



Teraz, gdy mam DataTable ze wszystkimi nazwami pól po angielsku, mogę ją przetłumaczyć i zwrócić przetłumaczoną DataTable, po prostu wykonując następujący 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.         }
Skopiuj kod
Idea tej metody polega na stworzeniu nowej DataTable zgodnie z DataTable, którą ma się przetłumaczyć: nazwa kolumny każdej kolumny nowej DataTable to przetłumaczona chińska nazwa (jeśli angielskia nazwa kolumny nie jest tłumaczona, angielska kolumna zostaje zachowana, jeśli można ją przetłumaczyć, jest tłumaczona), a po skonstruowaniu informacji o polu nowej DataTable, rekordy starej DataTable są wstawiane do nowej DataTable jeden po drugim.



Hehe, to już zakręt... Ale prędkość wciąż jest możliwa.







Poprzedni:Tabele datagrid EasyUI dynamicznie wiążą kolumny pól
Następny:Wyłącz funkcję Link do przeglądarki w Visual Studio 2013
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com