Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 20385|Resposta: 0

[Fonte] Traduza todos os nomes dos campos da DataTable para chinês e retorne

[Copiar link]
Publicado em 29/10/2015 13:50:20 | | | |
Dados originais:

Dados traduzidos:



Geralmente, é fácil consultar e exibir um DataTable no código, desde que o DataTable consultado seja usado como fonte de dados de um determinado controle, tudo bem, mas os campos desse DataTable são todos campos em inglês, como mudá-los todos para chinês?



Agora eu sei os nomes chineses de cada campo em inglês, e toda a informação de tradução dos campos está armazenada em uma tabela chamada COLUMNTRANSLATION, e a instrução SQL para criar essa tabela é:

criar tabela COLUMNTRANSLATION

(
    NÚMERO DE IDENTIFICAÇÃO (10) CHAVE PRIMÁRIA,
    NOME COLUNA VARCHAR2(50), //nome do campo
    TRADUÇÃO VARCHAR2(50) // campo correspondente ao nome chinês
)



Coloque alguns dados primeiro, para que haja vários registros nesta tabela, por exemplo: Nomedo do Estudante corresponde a "nome do aluno".



Agora que tenho um DataTable com todos os seus nomes de campos em inglês, posso traduzi-lo e devolver o DataTable traduzido simplesmente executando o seguinte 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
A ideia desse método é construir uma nova DataTable de acordo com a DataTable a ser traduzida: o nome da coluna de cada coluna da nova DataTable é o nome chinês traduzido (se o nome da coluna em inglês não for traduzido, o nome da coluna em inglês é mantido; se puder ser traduzido, é traduzido), e após construir as informações de campo da nova DataTable, os registros da DataTable antiga são inseridos no novo DataTable um a um.



Hehe, é uma vez... Mas a velocidade ainda é possível.







Anterior:Tabelas de datagrid do EasyUI vinculam dinamicamente colunas de campo
Próximo:Desative o recurso Link do Navegador no Visual Studio 2013
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com