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 ...
Любые идеи?
Как я уже сказал, он останавливается после второго ряда ...
Что произойдет, если вы сначала сгенерируете свою строку и затем отобразите ее в окне сообщения? Вы отлаживали строки за строкой? –
Эй, человек. Да, да. Проблема заключается в том, что линия MySqlDataReader. Он останавливается. Запрос тоже хорош. hmmm ... – Michael
Но для полного ответа на ваш вопрос: 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