Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 по одному.



Хе-хе, это поворот... Но скорость всё ещё возможна.







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

Mail To:help@itsvse.com