2017-02-13 23 views
0

私は3500行の結果を返すクエリを持っています。で、私は、各day.For例の列をしたいデータをデータグリッドビューに分割するC#

   DATE   VALUE 
    --------------------|------- 
    1 |2016-10-21 10:00:00| 0 
    2 |2016-10-21 10:15:00| 0 
    3 |2016-10-21 10:30:00| 6 
    4 |2016-10-21 10:45:00| 9 
    5 |2016-10-21 11:00:00| 18 
    6 |2016-10-21 11:15:00| 15 
      . 
      . 
      . 
3500|2016-11-30 00:15:00| 0 

Iは、AC#のDataGridViewの中にこのクエリを挿入したいが、私は一意の列をたくない:各行は、毎日の15分の時間の記録期間でありますこのクエリ私は40日の結果を取得し、私は毎日の列を持つdatagridviewが欲しい。

¿誰かがこれを行う最も速い方法を知っていますか?

+1

そして、あなたが365日を持っている場合、あなたは365個の列をしたいですか?値が1行ありますか?また、あなたの質問は広すぎる - あなたはどちらかのデータを必要な形式で準備する必要がありますか、データを持っていて、それをgridviewにバインドする方法を尋ねる必要があります –

+0

私はあなたがデータベースに必要な出力を最初に生成する方が良い。次に、データを返し、グリッドにバインドします。 – Wheels73

+0

いいえ、私が持っている列の最大数は40です。それはなぜ列にしたいですか。 – dbz

答えて

-1

同じ日にすべての値を最初に追加し、必要な方法でリストを再構築してから、C#datagridviewに挿入します。

+0

質問にはコメントがあるかもしれませんが、アンサーではありません –

0

そのような何か:

var query = new[] { new { Date = new DateTime(2016,10,21,10,0,0), Value = 6 }, 
        new { Date = new DateTime(2016,10,21,10,15,0), Value = 9 }, 
        new { Date = new DateTime(2016,10,30,10,0,0), Value = 18 }}; 
var groupedQuery = query.GroupBy(p => p.Date.Date, p => p.Value, (key, g) => new { Date = key, Value = g.Sum() }); 
var grid = new DataGridView(); 
var bs = new BindingSource(); 
bs.DataSource = groupedQuery; 
grid.AutoGenerateColumns = false; 
grid.DataSource = bs; 
foreach (var item in groupedQuery) 
{ 
    DataGridViewColumn column = new DataGridViewColumn { HeaderText = item.Date.Date.ToString() }; 
    grid.Columns.Add(column); 
} 
関連する問題