Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 20385|Répondre: 0

[Source] Traduisez tous les noms de champs de la DataTable en chinois et retournez

[Copié le lien]
Publié sur 29/10/2015 13:50:20 | | | |
Données originales :

Données traduites :



En général, il est facile de requête et d’afficher une DataTable dans le code, tant que la DataTable interrogée est utilisée comme sourceDonnées d’un certain contrôle, cela peut aller, mais les champs de cette DataTable sont tous des champs anglais, comment les changer tous en chinois ?



Je connais maintenant les noms chinois de chaque champ anglais, et toutes les informations de traduction des champs sont stockées dans une table appelée COLUMNTRANSLATION, et l’instruction SQL pour créer cette table est la suivante :

créer table COLUMNTRANSLATION

(
    NUMÉRO D’IDENTIFICATION (10) CLÉ PRIMAIRE,
    NOM COLONNE VARCHAR2(50), //nom du champ
    TRADUCTION VARCHAR2(50) // champ correspondant au nom chinois
)



Mettez d’abord quelques données dedans, afin qu’il y ait plusieurs enregistrements dans ce tableau, par exemple : StudentName correspond à « nom de l’étudiant ».



Maintenant que j’ai un DataTable avec tous ses noms de champs en anglais, je peux le traduire et retourner le DataTable traduit simplement en exécutant le code suivant :

  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.         }
Code de copie
L’idée de cette méthode est de construire un nouveau DataTable selon le DataTable à traduire : le nom de chaque colonne du nouveau DataTable est le nom chinois traduit (si le nom de la colonne anglais n’est pas traduit, le nom de la colonne anglais est conservé, s’il peut être traduit, il est transformé), et après avoir construit les informations de champ du nouveau DataTable, les enregistrements de l’ancien DataTable sont insérés dans le nouveau DataTable un par un.



Hehe, c’est un tour... Mais la vitesse reste possible.







Précédent:Les tables de datagrid EasyUI lient dynamiquement les colonnes de champs
Prochain:Désactivez la fonction Lien du navigateur dans Visual Studio 2013
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com