これは、この回答で提供されているコードを参照しています。@Tim-Schmelter によるリンクの説明をここに入力してください。
コードは、特定の列で DataTable をグループ化し、列 (ピボット) にカウントを追加することです。
public DataTable GroupBy(string i_sGroupByColumn, string i_sAggregateColumn, DataTable i_dSourceTable)
{
DataView dv = new DataView(i_dSourceTable);
//getting distinct values for group column
DataTable dtGroup = dv.ToTable(true, new string[] { i_sGroupByColumn });
//adding column for the row count
dtGroup.Columns.Add("Count", typeof(int));
//looping thru distinct values for the group, counting
foreach (DataRow dr in dtGroup.Rows)
{
dr["Count"] = i_dSourceTable.Compute("Count(" + i_sAggregateColumn + ")", i_sGroupByColumn + " = '" + dr[i_sGroupByColumn] + "'");
}
//returning grouped/counted result
return dtGroup;
}
ただし、私のデータテーブルには、フィールド名にスペースを含む列 (これを変更することはできません) があります。つまり、「ソリューション ID」です。
これを上記のコードに渡すと、次のようになります。
DataTable Solutions = GroupBy("Solution ID", "Solution ID", tbQ);
...次のエラーが表示されます:構文エラー: 'ID' 演算子の後にオペランドがありません。
[] でカプセル化し、スペースを + に修正しようとしましたが、うまくいきません。
上記のコードを修正して、スペースを含む列を受け入れることはできますか?
ありがとう、マーク