Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 20385|Respuesta: 0

[Fuente] Traduce todos los nombres de campos de la DataTable al chino y regresa

[Copiar enlace]
Publicado en 29/10/2015 13:50:20 | | | |
Datos originales:

Datos traducidos:



Generalmente, es fácil consultar y mostrar una DataTable en el código; siempre que la DataTable consultada se use como DataSource de un determinado control, está bien, pero los campos de esta DataTable son todos campos en inglés, ¿cómo cambiarlos todos a chino?



Ahora conozco los nombres chinos de cada campo en inglés, y toda la información de traducción de los campos se almacena en una tabla llamada COLUMNTRANSLATION, y la instrucción SQL para crear esta tabla es:

create table COLUMNTRANSLATION

(
    NÚMERO DE IDENTIFICACIÓN (10) CLAVE PRIMARIA,
    NOMBREDE COLUMNA VARCHAR2(50), //nombre del campo
    TRADUCCIÓN VARCHAR2(50) // campo correspondiente al nombre chino
)



Primero pon algunos datos, para que haya varios registros en esta tabla, por ejemplo: Nombreestudiante corresponde a "nombre del estudiante".



Ahora que tengo una DataTable con todos sus nombres de campos en inglés, puedo traducirla y devolver la DataTable traducida simplemente ejecutando el siguiente código:

  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.         }
Copiar código
La idea de este método es construir una nueva DataTable según la DataTable que se va a traducir: el nombre de la columna de cada columna de la nueva DataTable es el nombre chino traducido (si el nombre de la columna en inglés no se traduce, se conserva el nombre de la columna en inglés; si puede traducirse, se traduce), y tras construir la información de campo de la nueva DataTable, los registros de la antigua DataTable se insertan uno por uno en la nueva DataTable.



Jeje, es un giro... Pero la velocidad sigue siendo posible.







Anterior:Las tablas de datagrid de EasyUI enlazan dinámicamente columnas de campo
Próximo:Desactiva la función de enlace del navegador en Visual Studio 2013
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com