2015-03-06 2 views
0

У меня есть следующие DataTable:Необъяснимых подкачек на колонку с DataGridView

DataTable dt4 = new DataTable(); 
       dt4.Columns.Add(new DataColumn("Fupcpe10", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Fupcpe1", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Flowcpe10", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Flowcpe1", typeof(double))); ; 
       dt4.Columns.Add(new DataColumn("Gcpe10", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Gcpe1", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Hcpe10", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Hcpe1", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Icpe10", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Icpe1", typeof(double))); 
       dt4.Columns.Add(new DataColumn("Variavel", typeof(double))); 
       foreach (DataRow row in rows4) 
       { 
        dt4.ImportRow(row); 
       } 

В том же контексте rows4 является 2D массива, который содержит 2 строки другой таблицы.

Однако это происходит:

enter image description here

Колонки misteriously swaped, я огляделся и единственное, что нужно сделать, это прямой показатель своп, который я не имею ни на мой код. Советы?

Что я ожидал был этот порядком колонка

enter image description here

rows4 образуется после этого

DataRow[] rows = DataAccess.Instance.tabela1vert0caso1W.Select("Variavel = " + min.ToString(CultureInfo.InvariantCulture) + " OR " + "Variavel = " + max.ToString(CultureInfo.InvariantCulture)); 

где tabela1vert0caso1W таблица с правильным порядком!

Т.Л., д-р: Я создаю таблицу tabela1vert0caso1W, которая работает хорошо, я беру 2 строки и поместить их в rows4 Затем я создаю DataTable dt4 с теми же колоннами в том же порядке, и поместите 2 строки там. Где-то в этом процессе происходит своп, где? как? У меня есть десятки других столов и ничего подобного не произошло

+0

Не совсем понятно, что вы ожидаете (и почему) и что произошло вместо этого? Где код, который вы создаете 'rows4'? –

+1

Отключить 'AutoGenerateColumns' (возможно, вам придется переустановить после изменения) – DonBoitnott

+0

@SriramSakthivel Не столбцы, индексированные в том же порядке, который вы добавляете в таблицу? Я отредактирую свой вопрос в любом случае – ng80092b

ответ

0

Решение прост, проблема в том, что у меня были аналогичные, но не совсем равные таблицы выше с колонками в разном порядке. Это, безусловно, имеет отношение к AutoGenerateColumns как комментарий DonBoitnott.

В любом случае, чтобы сбросить это просто обнулить DataGridView перед нанесением новой таблицы

dataGridView6.DataSource = null; 
dataGridView6.DataSource = dt4; 

Это каким-то образом «сбросить» порядок столбцов. Надеюсь, это поможет кому-то другому.

Смежные вопросы