Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 20385|Отговор: 0

[Източник] Преведете всички имена на полета в DataTable на китайски и върнете

[Копирай линк]
Публикувано в 29.10.2015 г. 13:50:20 ч. | | | |
Оригинални данни:

Преведени данни:



Обикновено е лесно да се прави заявка и да се показва DataTable в кода, стига заявената DataTable да се използва като източник на данни на определен контрол, това е ОК, но полетата в тази DataTable са всички английски полета, как да ги сменя всички на китайски?



Сега знам китайските имена на всяко английско поле и цялата преводна информация на полетата се съхранява в таблица, наречена COLUMNTRANSLATION, а SQL операторът за създаване на тази таблица е:

създаване на таблица COLUMNTRANSLATION

(
    ИДЕНТИФИКАЦИОНЕН НОМЕР(10) ПЪРВИЧЕН КЛЮЧ,
    ИМЕ НА КОЛОНА VARCHAR2(50), //име на полето
    ПРЕВОД VARCHAR2(50) // поле, съответстващо на китайското име
)



Първо добавете няколко данни, за да има няколко записа в тази таблица, например: StudentName съответства на "име на ученик".



Сега, когато имам DataTable с всички имена на полета на английски, мога да я преведа и да върна преведената DataTable, като просто изпълня следния код:

  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.         }
Копирай код
Идеята на този метод е да се конструира нова DataTable според DataTable, която трябва да се преведе: името на колоната на всяка колона от новата DataTable е преведеното китайско име (ако английското име на колоната не е преведено, се запазва английското име на колоната, ако може да се преведе – се превежда), а след конструиране на полева информация на новата DataTable, записите на старата DataTable се вмъкват в новата DataTable един по един.



Хехе, завой... Но скоростта все още е възможна.







Предишен:EasyUI таблиците на datagrid динамично свързват колони на полета
Следващ:Изключете функцията Browser Link във Visual Studio 2013
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com