C# อ่านค่าจาก MySQL มาบวก 1 แล้ว Update เข้าไปใหม่ไม่ได้ครับ

C# อ่านค่าจาก MySQL มาบวก 1 แล้ว Update เข้าไปใหม่ไม่ได้ครับ มันเป็นค่าเดิมตลอด ตรง Console.WriteLine() บรรทัดนี้

Console.WriteLine("count = " + count + ", last_number=" + last_number + ",last_time =" + time_started + ", last_date = " + date_started);

กดปุ่ม button กี่ครั้งก็ได้ค่าเดิมตลอดคือ

count = 6, last_number=0,last_time =09:17:19, last_date = 2014-12-23 ซึ่งที่จริง count ต้องบวก 1 ไปเรื่อยๆครับต้องแก้ยังไงครับ

Code

private void read_btn_Click(object sender, EventArgs e)
       {
           MySqlConnection conn = null;
           MySqlDataReader rdr = null;
           int count;
               DateTime time = DateTime.Now;
               string date_started = String.Format("{0:yyyy-MM-dd}", time);
               string time_started = String.Format("{0:HH:mm:ss}", time);

           try
           {
               conn = new MySqlConnection(ConnectionString);
               conn.Open();

               //อ่านค่า last_number จากตาราง queue_wait
               string stm = "SELECT * FROM queue_wait ORDER BY time ASC LIMIT 1 ";
               MySqlCommand cmd_sel = new MySqlCommand(stm, conn);
               rdr = cmd_sel.ExecuteReader();

               if(rdr.Read())
               {
                   Console.WriteLine(rdr.GetString(1) + ": "
                       + rdr.GetString(2));
                  
                   last_number = int.Parse(rdr.GetString(2));
               }

               rdr.Close();  // ต้อง close ก่อนไม่งั้นจะมี error  There is already an open DataReader

               //ตรวจสอบว่ามีข้อมูลอยู่แล้วหรือไม่
               string chk_data = "SELECT * FROM queue_data WHERE last_date = '" + date_started + "' LIMIT 1 ";
               MySqlCommand cmd_chk = new MySqlCommand(chk_data, conn);
               rdr = cmd_chk.ExecuteReader();
              
               if (rdr.Read())
               {
                   //ถ้ามีข้อมูลอยู่แล้วให้ update

                   count = int.Parse(rdr.GetString(2));
                   count += 1;

//กดปุ่ม button กี่ครั้งก็ได้ค่าเดิมตลอดคือ count = 6, last_number=0,last_time =09:17:19, last_date = 2014-12-23
                   Console.WriteLine("count = " + count + ", last_number=" + last_number + ",last_time =" + time_started + ", last_date = " + date_started);

                   if (rdr != null)
                   {
                       rdr.Close();  // ต้อง close ก่อนไม่งั้นจะมี error  There is already an open DataReader
                   }

                   sql = "UPDATE queue_data SET count = " + count + ", last_number = " + last_number + ", last_time = '" + time_started + "', status = false WHERE last_date ='" + date_started + "' ";

                   MySqlCommand cmd = new MySqlCommand(sql, conn);
                   cmd.ExecuteNonQuery();

               }
               else
               {
                   //ถ้าไม่มีข้อมูลให้ Insert

               }
           }
           catch (MySqlException ex)
           {
               Console.WriteLine("Error: {0}", ex.ToString());
           }
           finally
           {
               if (rdr != null)
               {
                   rdr.Close();
               }

               if (conn != null)
               {
                   conn.Close();
               }
           }
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่