Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > C# Select ข้อมูลจาก table แรกเพื่อมา update อีก table นึงไม่ได้ครับ



 

C# Select ข้อมูลจาก table แรกเพื่อมา update อีก table นึงไม่ได้ครับ

 



Topic : 113392



โพสกระทู้ ( 190 )
บทความ ( 0 )



สถานะออฟไลน์




C# Select ข้อมูลจากตาราง queue_wait เพื่อมา update ในตาราง queue_data ไม่ได้ครับ รันแล้วมัน error ครับ ไม่ทราบว่าเป็นเพราะอะไรครับค่าก็มีครบแต่ update ไม่ได้


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;
                    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();
                }
            }



ผลการ Run

Code
A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll
4: 3
count = 6, last_number=3,last_time =15:22:25, last_date = 2014-12-22
Error: MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':22:25, status = false WHERE last_date ='2014-12-22'' at line 1
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at Queue_Read.Form1.read_btn_Click(Object sender, EventArgs e) in C:\Users\Admin\documents\visual studio 2010\Projects\Queue_Read\Queue_Read\Form1.cs:line 252
The thread 'vshost.RunParkingWindow' (0x1d3c) has exited with code 0 (0x0).
The thread '<No Name>' (0x178) has exited with code 0 (0x0).
The program '[6796] Queue_Read.vshost.exe: Managed (v2.0.50727)' has exited with code 0 (0x0).
The program '[6796] Queue_Read.vshost.exe: Program Trace' has exited with code 0 (0x0).


ดาต้าเบส

Code
CREATE TABLE `queue_data` (
`id` int(11) NOT NULL auto_increment,
`last_number` int(11) NOT NULL,
`channel` int(11) NOT NULL,
`count` int(11) NOT NULL,
`language` char(3) NOT NULL,
`last_date` date NOT NULL,
`last_time` time NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

INSERT INTO `queue_data` VALUES (3, 6, 8, 5, 'T', '2014-12-21', '23:45:15', 0);
INSERT INTO `queue_data` VALUES (4, 9, 5, 1, 'T', '2014-12-22', '11:28:06', 1);
INSERT INTO `queue_data` VALUES (5, 10, 4, 5, 'T', '2014-12-22', '12:04:52', 0);




Tag : .NET, C#, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-12-22 15:56:52 By : mmc01 View : 1168 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Quote:
last_time = " + time_started + "


ถ้าเป็น DateTime จะต้องใส่ 'xxx' ด้วยครับ

Code (C#)
last_time = '" + time_started + "'







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-22 20:46:58 By : mr.win
 


 

No. 2



โพสกระทู้ ( 190 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ


ประวัติการแก้ไข
2014-12-23 14:59:03
2014-12-23 17:44:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-23 14:09:23 By : mmc01
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# Select ข้อมูลจาก table แรกเพื่อมา update อีก table นึงไม่ได้ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่