Oriģinālie dati:
Tulkotie dati:
Parasti kodā ir viegli vaicāt un parādīt DataTable, ja vien vaicātā DataTable tiek izmantota kā noteiktas vadīklas DataSource, tas ir OK, bet šīs DataTable lauki ir visi angļu valodas lauki, kā tos visus nomainīt uz ķīniešu valodu?
Tagad es zinu katra angļu valodas lauka ķīniešu nosaukumus, un visa lauku tulkošanas informācija tiek glabāta tabulā, ko sauc par COLUMNTRANSLATION, un SQL priekšraksts, lai izveidotu šo tabulu, ir:
izveidot tabulu COLUMNTRANSLATION
( ID NUMURS(10) PRIMĀRĀ ATSLĒGA, COLUMNNAME VARCHAR2(50), //lauka nosaukums TRANSLATION VARCHAR2(50) // lauks, kas atbilst ķīniešu nosaukumam
)
Vispirms ievietojiet tajā dažus datus, lai šajā tabulā būtu vairāki ieraksti, piemēram: StudentName atbilst "studenta vārdam".
Tagad, kad man ir DataTable ar visiem tā lauku nosaukumiem angļu valodā, es varu to tulkot un atgriezt tulkoto DataTable, vienkārši izpildot šādu kodu:
- /// <summary>
- /// 将DataTable的字段名全部翻译为中文
- /// </summary>
- /// <param name="table">待翻译的DataTable</param>
- /// <returns></returns>
- public DataTable TranslateDataTable(DataTable table)
- {
- DataTable dt = new DataTable();
- dt.TableName = "TempTable";
- if (table != null && table.Rows.Count > 0)
- {
- //先为dt构造列信息
- foreach (DataColumn column in table.Columns)
- {
- string name = GetColumnName(column.ColumnName);
- dt.Columns.Add(name);
- }
- for (int i = 0; i < table.Rows.Count; i++)
- {
- DataRow NewRow = dt.NewRow();
- DataRow row = table.Rows[i];
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- NewRow[j] = row[j].ToString();
- }
- dt.Rows.Add(NewRow);
- }
- }
- return dt;
- }
- /// <summary>
- /// 得到列名称的别名
- /// </summary>
- /// <param name="columnName"></param>
- /// <returns></returns>
- private string GetColumnName(string columnName)
- {
- string sqlString = " Select TRANSLATION from COLUMNTRANSLATION where COLUMNNAME = '" + columnName.ToUpper() + "'";
- object s = dao.ExecuteScalar(sqlString);
- string name = (s == null) ? columnName : s.ToString(); //如果此英文字段有翻译,则返回其中文翻译,若无,则保留此英文翻译。
- return name;
- }
Kopēt kodu Šīs metodes ideja ir izveidot jaunu DataTable saskaņā ar tulkojamo DataTable: katras jaunās DataTable kolonnas nosaukums ir tulkotais ķīniešu nosaukums (ja angļu kolonnas nosaukums netiek tulkots, angļu kolonnas nosaukums tiek saglabāts, ja to var tulkot, tas tiek tulkots), un pēc jaunās DataTable lauka informācijas izveidošanas vecās DataTable ieraksti tiek ievietoti jaunajā DataTable pa vienam.
Hehe, tas ir pagrieziens ... Bet ātrums joprojām ir iespējams.
|