Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 20385|Svar: 0

[Kilde] Oversæt alle feltnavnene i DataTable til kinesisk og returner derefter

[Kopier link]
Opslået på 29/10/2015 13.50.20 | | | |
Originale data:

Oversatte data:



Generelt er det nemt at forespørge og vise en DataTable i koden, så længe den forespurgte DataTable bruges som DataSource for en bestemt kontrol, er det i orden, men felterne i denne DataTable er alle engelske felter, hvordan ændrer man dem alle til kinesisk?



Nu kender jeg de kinesiske navne på hvert engelsk felt, og al oversættelsesinformation om felterne er gemt i en tabel kaldet COLUMNTRANSLATION, og SQL-sætningen til at oprette denne tabel er:

oprette tabel COLUMNTRANSLATION

(
    ID-NUMMER(10) PRIMÆR NØGLE,
    KOLONNENAVN VARCHAR2(50), //feltnavn
    OVERSÆTTELSE VARCHAR2(50) // felt svarende til det kinesiske navn
)



Læg først nogle data i den, så der er flere poster i denne tabel, for eksempel: StudentName svarer til "student name".



Nu hvor jeg har en DataTable med alle dens feltnavne på engelsk, kan jeg oversætte den og returnere den oversatte DataTable ved blot at udføre følgende kode:

  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.         }
Kopier kode
Idéen med denne metode er at konstruere en ny DataTable i henhold til den DataTable, der skal oversættes: kolonnenavnet for hver kolonne i den nye DataTable er det oversatte kinesiske navn (hvis det engelske kolonnenavn ikke oversættes, beholdes det engelske kolonnenavn, hvis det kan oversættes, oversættes det), og efter at have konstrueret feltinformationen for den nye DataTable, indsættes posterne fra den gamle DataTable i den nye DataTable én ad gangen.



Hehe, det er en tur... Men hastighed er stadig mulig.







Tidligere:EasyUI datagrid-tabeller binder dynamisk feltkolonner
Næste:Slå Browser Link-funktionen fra i Visual Studio 2013
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com