2012-09-26 53 views
0

在CSS中,我們可以使用text-transform:capitalize;使每一個首字母大寫。 我有一個數據表,我想讓每列中的每個第一個字母大寫。我如何執行文本轉換:大寫sql數據表? (正在使用C#作爲後面的代碼) 這裏是我的代碼..數據表中的文本轉換

public void myfunction(DataSet ds) 
{ 
    DataTable myTable = ds.Tables[0]; 
    // and now have to transform each first letter capital for 
    // all the columns in this table.. 
} 

提前感謝!

+0

如何使用['string.ToUpper()'](http://msdn.microsoft.com/en-us/library/ewdd6aed.aspx)? –

+1

它將改變上面的整個單詞..而我只需要首字母大寫。 –

+0

富有創意!如果你真的不知道如何將字符串中的一個字符改爲大寫,我強烈建議閱讀一本關於C#/ .NET編程的初學者書籍。 –

回答

0

試試這個

string ToCamelCase(string input) 
{ 
    string output = string.Empty; 
    foreach (string word in input.Split(' ')) 
     output += word[0].ToString().ToUpper() + word.Substring(1) + " "; 
    return output.Trim(); 
} 
+0

它可能會工作,但我有近100個表和數千個列的列,所以這將花費太長的時間來轉換這種方式.. –

1
foreach (var column in myTable.Columns.OfType<DataColumn>()) 
{ 
    string name = column.ColumnName; 

    char[] chars = name.ToCharArray(); 
    chars[0] = char.ToUpper(chars[0]); 

    column.ColumnName = new string(chars); 
} 

另一種選擇:

string name = column.ColumnName; 
column.ColumnName = char.ToUpper(name.First()) 
           + new string(name.Skip(1).ToArray()); 
+1

我想OP要大寫DataTable中所有字段的第一個字母,而不是列名。 –

+0

您正在使用列名稱大寫。我猜他想要的是_values_行。 –

+0

@TimSchmelter:*我想使每列中的每個首字母大寫*,而不是每行 –

0

你可以用

foreach(var column in YourDataTable.Columns) 
{ 
    var result = UppercaseFirst(column.ColumnName); 
    Console.WriteLine(result); 

    column.ColumnName = result; 
} 

方法嘗試

public string UppercaseFirst(string s) 
{ 
    // Check for empty string. 
    if (string.IsNullOrEmpty(s)) 
    { 
     return string.Empty; 
    } 
    // Return char and concat substring. 
    return char.ToUpper(s[0]) + s.Substring(1); 
} 
+0

你忽略了'UppercaseFirst'方法調用的結果。 –

+0

Yhank的評論,我增加了Console.WriteLine –

0

如果我理解正確的問題

foreach (DataColumn column in myTable.Columns) 
{ 
    column.ColumnName=UppercaseFirst(column.ColumnName); 
} 

static string UppercaseFirst(string s){ 
    // Check for empty string. 
    if (string.IsNullOrEmpty(s)) 
    { 
     return string.Empty; 
    } 
    // Return char and concat substring. 
    return char.ToUpper(s[0]) + s.Substring(1); 
} 

隨着DotNetPerls

2

UppercaseFirst禮貌您需要循環所有DataRows

foreach(DataRow r in ds.Tables[0].Rows) 
{ 
    foreach(DataColumn c in ds.Tables[0].Columns) 
    { 
     if(!r.IsNull(c)) 
     { 
      var field = r[c].ToString().Trim(); 
      if (field.Length == 1) 
       r[c] = field.ToUpper(); 
      else 
       r[c] = char.ToUpper(field[0]) + field.Substring(1); 
     } 
    } 
} 

但是,最好的辦法是做在DBMS。

UPPER(substring(Column1,1,1))