2016-03-29 3 views
-1

У меня есть данные, заполненные из базы данных. в этом datatable есть имя столбца «TabOrder» Теперь я хочу выполнить цикл через этот datatable и получить следующий максимальный таргетинг, чем текущая итерация цикла. Например, если текущая итерация (i) цикла равна 5, я хочу следующее максимальное число из столбца табеля. следующий максимум может составлять 6, 7, 10 и т. д.Как получить следующее максимальное число из datatable

for (int j = 0; j < dtFormFields.Rows.Count; j++) 
          { 
           if (dtFormFields.Rows[j]["taborder"].ToString() == (tabOrder + 1).ToString()) 
           { 
            foreach (var control in objForm.Controls) 
            { 
             if (control is GroupControl) 
             { 
              var objGroupControl = control as GroupControl; 
              foreach (var ctrl in objGroupControl.Controls) 
              { 
               if (ctrl is TextEdit) 
               { 
                var objTextBox = ctrl as TextEdit; 
                if (objTextBox.Name == dtFormFields.Rows[j]["textboxname"].ToString()) 
                { 
                 ReturnControl = objTextBox; 
                 objTextBox.TabIndex = tabOrder; 
                 break; 
                } 
               } 
} 
} 
} 
} 
} 

Я хочу установить следующую максимальную таможню текущего контроля. Как это сделать.

+1

Вам нужно будет объяснить гораздо более подробно то, что вы пытаетесь сделать, и то, что вы сделали до сих пор, чтобы достичь этого. Опубликуйте код и разделы руководства, которые вы прочитали, и почему они вам не помогли. –

+0

Я отредактировал мой вопрос. вставляемый код –

ответ

0

То, что я понял это; столбец TabOrder содержит значения, и при повторении существует вероятность того, что столбец может иметь более высокое значение, чем тот, который у вас есть при текущей итерации. 1. Вы можете достичь этого во время заполнения вашего DataTable из базы данных. Поэтому, если ваш запрос сортирует данные на TabOrder, вы получите следующее значение. (Но это может завершиться неудачно, если сказать, что число 5 существует в течение нескольких раз.) 2. Внутри вашего цикла вызовите простую функцию и отправьте текущее значение TabOrder и снова зациклируйте значения столбца DataTable, чтобы получить следующее максимальное число.

Дайте мне знать, если это поможет или предоставит дополнительную информацию.

+0

Я не хочу снова зацикливаться. –

+0

Ваше первое предложение полезно. Решила мою проблему. Благодаря:) –

0

Позвольте dtTable быть dataTable, который заполняется из базы данных и имеет столбец с именем TabOrder. то следующий код поможет вам заказать эти строки в порядке TabOrder и принять ряд, имеющий второй самый высокий порядок строк

var secondMaxRow = dtTable.AsEnumerable().OrderBy(x => x["TabOrder"]).Skip(1).FirstOrDefault(); 
Смежные вопросы