2014-11-06 2 views
0

I'am трудное время с C# банкомате ...C# Loop через DataGridView - MySqlDataReader останавливается после 2 строк?

Сво об этой неприятной части кода здесь:

foreach (DataGridViewRow r in dgv_selectedOrders.Rows) 
      { 
       MessageBox.Show(r.Cells[0].Value.ToString()); 
       order_id = r.Cells[0].Value.ToString(); 
       query = "SELECT count(orders.id) AS total_orders FROM orders WHERE customer_id = (SELECT customer_id FROM orders WHERE id = " + order_id + ");"; 
       command = new MySqlCommand(query, conn); 
       MySqlDataReader sda = command.ExecuteReader(); 
       while (sda.Read()) 
        dgv_selectedOrders[11,r.Index].Value = sda.GetInt32(0).ToString();*/ 

      } 

Этот цикл происходит только через два раза, а затем он останавливается ...

Интересно, что, когда я раскомментировал все, что вызвал «MessageBox», он красиво перебирает каждую строку и отображает каждый «order_id» моего DataGridView.

Что он должен сделать, это:

Loop через существующую DataGridView и получить «Order_ID» из каждой строки. Затем я хочу подсчитать, сколько заказов уже сделано клиентом и добавить результат в coulmn 11 DataGridView ...

Любые идеи?

Как я уже сказал, он останавливается после второго ряда ...

+0

Что произойдет, если вы сначала сгенерируете свою строку и затем отобразите ее в окне сообщения? Вы отлаживали строки за строкой? –

+0

Эй, человек. Да, да. Проблема заключается в том, что линия MySqlDataReader. Он останавливается. Запрос тоже хорош. hmmm ... – Michael

+0

Но для полного ответа на ваш вопрос: SELECT count (orders.id) AS total_orders FROM orders WHERE customer_id = (SELECT customer_id FROM orders WHERE id = 111), а второй: SELECT count (orders.id) AS total_orders FROM orders WHERE customer_id = (SELECT customer_id FROM orders WHERE id = 111) ... и оба запроса хороши. Но было бы еще 20 строк, но он просто останавливается ... сумасшедший .... – Michael

ответ

0

Ok Ребята,

так решение довольно просто.

Просто закройте MySqlDataReader первый -.-... лол

sda.Close(); 

после цикла.

Cheers,