1

以下のコードを使用してデータを並べ替えていますが、プログラムは問題なく実行されますが、行のデータは並べ替えられていません..そして、これが当てはまる理由を見つけることができません。

DataTable extractedData = new DataTable();
//data added to datatable extractedData
DataView dv = new DataView();
dv =extractedData.AsDataView();
dv.Sort = dv.Table.Columns[10].ColumnName + "  DESC";
extractedData = dv.Table;

以下のコードはapose.slides、コードをプレゼンテーション テーブルに追加するために使用しています。

 string val = "";
 int col = 0;
 int row = 0;
 for (int i = 1; i < table.Rows.Count; i++)
 {
    for (int j = 0; j < table.Columns.Count; j++)
    {
        if (j == 0)
         {
             val = extractedData.Rows[row][valuesUsed[col]].ToString();
             string[] removeQuestion = val.Split('[', ']');
             val = removeQuestion[1];
         }
         else
         {
             val = extractedData.Rows[row][valuesUsed[col]].ToString();
             if (val == "-" || val == "")
             {
                 val = extractedData.Rows[row][valuesUsed[col]].ToString();
             }
             else
             {
                 val = Convert.ToString(Math.Round(Convert.ToDouble(extractedData.Rows[row][valuesUsed[col]]), MidpointRounding.AwayFromZero));
             }
         }
         table[j, i].TextFrame.Text = val;
         col++;
     }
     row++;
     col = 0;
 }
4

2 に答える 2

1

これは動作します:-

DataView dv = extractedData.DefaultView;
dv.Sort = extractedData.Columns[10].ColumnName + "  DESC";

DataView を動作させるには、DataTables の既定のビューにする必要がありました。

こちらもチェックしておきたいリンクです。

http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx

于 2012-12-07T12:28:14.203 に答える
0

コードの最後の行を のdv.toTable()代わりに に変更しますdv.Table

DataTable extractedData = new DataTable();
//data added to datatable extractedData
DataView dv = new DataView();
dv = extractedData.DefaultView;
dv.Sort = "ColumnName  DESC";   //mention exact name of your column
//or else
//dv.Sort = extractedData.Columns[9].ColumnName + "  DESC";
extractedData = dv.toTable();  //Instead of dv.Table;

詳細については、このリンクを参照してください。

于 2012-12-07T12:24:51.797 に答える