Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20385|Відповідь: 0

[Джерело] Перекладіть усі назви полів DataTable китайською мовою та поверніть

[Копіювати посилання]
Опубліковано 29.10.2015 13:50:20 | | | |
Оригінальні дані:

Перекладені дані:



Загалом, легко запитувати та відображати DataTable у коді, якщо запитаний DataTable використовується як джерело даних певного контролю, це нормально, але поля цього DataTable — це всі англійські поля, як змінити їх усі на китайську?



Тепер я знаю китайські назви кожного англійського поля, і вся інформація про переклад полів зберігається в таблиці під назвою COLUMNTRANSLATION, а SQL-оператор для створення цієї таблиці виглядає:

create table 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