我試圖將DataTable的第一行設置爲列名。我正在使用Code Project的GenericParsing library。問題是解析器爲列設置了默認名稱。在DataTable中創建第一行列的名稱
謝謝。
我試圖將DataTable的第一行設置爲列名。我正在使用Code Project的GenericParsing library。問題是解析器爲列設置了默認名稱。在DataTable中創建第一行列的名稱
謝謝。
這應該做你想要什麼:
DataRow firstRow = table.NewRow();
List<string> names = new List<string>();
foreach (DataColumn column in table.Columns)
{
names.Add(column.ColumnName);
}
firstRow.ItemArray = names.ToArray();
table.Rows.InsertAt(firstRow, 0);
如果第一行已經存在,並且要「覆蓋」這一變化的第一行:
DataRow firstRow = table.Rows[0];
,並刪除最後一行。
這行代碼創建了一個新行,裏面填充了列名......!但我想要的其實是相反的......通過從第一行導入值來更改實際列的名稱......!我可以使用一個虛擬循環,但我跳躍,你有一些事情對我來說更優雅:)謝謝 – cyberbrain 2012-01-03 13:45:27
我認爲你需要以下條件:
foreach (DataColumn column in table.Columns)
{
string cName = table.Rows[0][column.ColumnName].ToString();
if (!table.Columns.Contains(cName) && cName != "")
{
column.ColumnName = cName;
}
}
table.Rows[0].Delete(); //If you don't need that row any more
當然添加data.Rows [0] .Delete()如果你不需要那行:) – 2012-01-03 14:02:07
你已經檢查過'cName!=「」'一次,第二次是毫無意義的,您可以安全地更改爲'column.ColumnName = cName;' – 2012-01-03 14:22:59
喜希望這將有助於ü這將使所有行,你列標題
foreach (DataRow inRow in inputTable.Rows)
{
string newColName = inRow[0].ToString();
outputTable.Columns.Add(newColName);
}
你能不能給一個鏈接解析庫? – 2012-01-03 13:24:26
爲什麼要將第一行設置爲列名?該庫類中必須有一些屬性,這些屬性將允許您指定列名並覆蓋默認值。 – 2012-01-03 13:25:05
@Jason Down:我在這裏找到它http://www.codeproject.com/KB/database/GenericParser.aspx其實是個不錯的項目:) – cyberbrain 2012-01-03 13:35:08