2017-01-20 4 views
1

Может ли кто-нибудь сказать мне, как я проверяю, имеют ли все строки определенного столбца datagridview одинаковое значение.Вызвать метод, если все строки определенного столбца datagridview имеют одинаковое значение

У меня есть одна таблица под названием «Курьер», которая содержит несколько партий. Каждая партия имеет столбец shipment_state. Также в таблице «Курьер» есть столбец с именем courier_state. Если все shipmment_state = обработано, я хочу установить обработчик courier_state =.

Я пробовал это.

foreach(DatagridViewRow rw in dtgridshipment.Rows) 
{ 
string state = rw.Cells[dtgridshipment.Columns["shipment_state"].Index].Value.ToString(); 

if(state.Equals("Processed")) 
{ 
    NShipment.UpdateStatus() //Update the status of courier_status with stored procedure 
} 
} 

Проблема с этим, если у меня одну строку с «обрабатываемой» значение courier_state обновляется для обработки. Мне нужно установить courier_state = обработано, если все строки обработки_отправки = обработаны.

Надеюсь, кто-то может мне помочь. Заранее спасибо

ответ

0

Так что вам не нужно обновлять, если state.Equals("Processed") не удалось выполнить ни одну итерацию, что означает, что вы можете остановить итерацию, если условие не выполнено. Поэтому вы можете попробовать что-то вроде этого:

bool canUpdate = true; 

foreach(DatagridViewRow rw in dtgridshipment.Rows) 
{ 
    string state = rw.Cells[dtgridshipment.Columns["shipment_state"].Index].Value.ToString(); 

    if(!state.Equals("Processed")) 
    { 
     // Need not to update the since state is not Processed for this row 
     // Stop iteration here 
     canUpdate = false; 
     break; 
    } 
} 
// value of canUpdate remains true if shipment_state for all rows are Processed 
// So we check that condition here and call the update 
if(canUpdate) 
{ 
    NShipment.UpdateStatus(); 
} 
+0

Огромное спасибо. Ты замечательный. – Omni

+0

@Omni: cool С удовольствием помогите вам –

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