0

我在使用 C# ATM 时遇到了困难......

关于这段讨厌的代码:

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”之外的所有内容时,它会很好地循环遍历每一行并显示我的 DataGridView 的每个“order_id”。

它应该做的是:

遍历现有的 DataGridView 并从每一行获取“Order_id”。然后我想计算客户已经下了多少订单,并将结果附加到 DataGridView 的第 11 行中...

有任何想法吗?

正如我所说,它在第二排之后停止......

4

1 回答 1

0

好了朋友们,

所以解决方案非常简单。

只需先关闭 MySqlDataReader -.-... 哈哈

sda.Close();

在while循环之后。

干杯,

于 2014-11-09T10:47:05.013 回答