Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20385|Antwort: 0

[Quelle] Übersetze alle Feldnamen der DataTable ins Chinesische und kehre zurück

[Link kopieren]
Veröffentlicht am 29.10.2015 13:50:20 | | | |
Originaldaten:

Übersetzte Daten:



Im Allgemeinen ist es einfach, eine DataTable im Code abzufragen und anzuzeigen, solange die abgerufene DataTable als DataSource einer bestimmten Kontrolle verwendet wird, ist das in Ordnung, aber die Felder dieser DataTable sind alle englische Felder – wie ändert man sie alle auf Chinesisch?



Jetzt kenne ich die chinesischen Namen jedes englischen Feldes, und alle Übersetzungsinformationen der Felder werden in einer Tabelle namens COLUMNTRANSLATION gespeichert, und die SQL-Anweisung zur Erstellung dieser Tabelle lautet:

Tabelle erstellen COLUMNTRANSLATION

(
    ID-NUMMER (10) PRIMÄRSCHLÜSSEL,
    SPALTENNAME VARCHAR2(50), //feldname
    ÜBERSETZUNG VARCHAR2(50) // Feld, das dem chinesischen Namen entspricht
)



Fügen Sie zuerst einige Daten hinein, sodass mehrere Datensätze in dieser Tabelle enthalten sind, zum Beispiel: StudentName entspricht "student name".



Jetzt, da ich eine DataTable mit allen Feldnamen auf Englisch habe, kann ich sie übersetzen und die übersetzte DataTable zurückgeben, indem ich einfach folgenden Code ausführe:

  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 kopieren
Die Idee dieser Methode ist es, eine neue DataTable entsprechend der zu übersetzenden DataTable zu erstellen: Der Spaltenname jeder Spalte der neuen DataTable ist der übersetzte chinesische Name (wenn der englische Spaltenname nicht übersetzt wird, bleibt der englische Spaltenname erhalten, wenn übersetzt werden kann, wird er übersetzt), und nachdem die Feldinformationen der neuen DataTable erstellt wurden, werden die Datensätze der alten DataTable nacheinander in die neue DataTable eingefügt.



Hehe, es ist eine Wendung... Aber Geschwindigkeit ist immer noch möglich.







Vorhergehend:EasyUI Datagrid-Tabellen binden dynamisch Feldspalten
Nächster:Deaktivieren Sie die Browser-Link-Funktion in Visual Studio 2013
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com