2017-01-07 5 views
0

datagridview列のデータを逆にして、同じdatagridviewの別の列に配置する必要があります。DataTableにバインドされた別の列のデータとは逆のデータを持つ列を作成するDatagridview

datagridviewにはソースとしてDatatableがあります。

for (int i = 1; i <= plazo; i++) 
{ 
    DataRow row = dtDetalle.NewRow(); 
    //# 
    row["nrocuota"] = i.ToString(); 
    //Fecha de vencimiento 
    fecha_pago = fecha_pago.AddMonths(1); 
    row["vencimiento"] = fecha_pago.ToString("dd/MM/yyyy"); 
    //Plazo 
    FPlazo = Convert.ToDateTime(row["vencimiento"]); 
    plazodias = (decimal)(FPlazo - dtpkrfecha.Value).TotalDays; 
    row["plazo"] = Convert.ToInt32(plazodias); //This is the column that I need to reverse 

    dtDetalle.Rows.Add(row); 
}    
+1

。それによって、すべての行が変更される可能性があります。 – Plutonix

+0

列Aの値が1,2,3,4,5の場合。値5,4,3,2,1を持つ別の列を作成する必要があります - @Plutonix – Omni

+0

DataTableに目的の列を追加するだけです! – Graffito

答えて

0

これを試してみてください。

public DataTable ReverseRowsInDataTable(DataTable inputTable) 
{ 
    DataTable outputTable = inputTable.Clone(); 

    for (int i = inputTable.Rows.Count - 1; i >= 0; i--) 
    { 
     outputTable.ImportRow(inputTable.Rows[i]); 
    } 

    return outputTable; 
} 

だから、基本的に、あなたの古いテーブルではなく、最後のインデックスから新しいテーブルを埋めます。

編集:私はあなたの質問を勘違いしました。列を逆転させる場合は、全体のデータテーブルと同じ原理ですが、行の代わりに、列を1行にして行います。

だからあなたは `のDataGridView COLUMN`のデータを逆にすることによって何を意味するか、新規のDataRowを作成し、

for int(i = yourDataRow.Cells.Count - 1; i >= 0; i--) 
{ 
    //and here insert value in your new DataRow column by column but calculate if max i = 5, then when i = 5, new column in newDataRow needs to be 0, 4-1 etc. 
} 
+0

答えをありがとう。これにより、Datatableのすべての列が反転されます。私は1つの列だけを逆にして、変更せずに残りの列を残す必要があります。御時間ありがとうございます。 – Omni

+0

@オムニ私は答えを編集しました。また、私は明日の完全なコードを書くでしょう、今それは午前4時05分ですので、私は寝る必要があります。 – Parpil

+0

ありがとうございました。私はあなたの完全なコードを待つでしょう。御時間ありがとうございます – Omni

関連する問題