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();
}
}
C# อ่านค่าจาก MySQL มาบวก 1 แล้ว Update เข้าไปใหม่ไม่ได้ครับ
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();
}
}