Lấy id cuối cùng sau khi insert dữ liệu dùng MySQL & C#

Viết ra các module thực hiện các tác vụ CRUD là công việc thường ngày của một lập trình viên. Trong quá trình chúng ta viết các module thực việc công việc insert dữ liệu vào một bảng dữ liệu A, chúng ta đôi khi muốn lấy cái id của record mà chúng ta vừa insert vào cơ sở dữ liệu để sử dụng vào một việc gì đó như là dùng id cuối cùng đó insert vào một bảng dữ liệu khác chẳng hạn

Nếu chúng ta sử dụng ngôn ngữ C# insert dữ liệu vào SQL Server thì chúng ta sẽ sử dụng SCOPE_IDENTITY. Còn nếu chúng ta sử dụng cơ sở dữ liệu MySQL thì chúng ta dùng SELECT LAST_INSERT_ID() và dùng ExecuteScalar(). Giả sử như đoạn mã sau lấy id cuối cùng dùng ngôn ngữ C#MySQL như sau

 string connectionSQL = "server=localhost;user id=root;password=;database=MyDataBase;";
 int lastId = 0;
 MySqlConnection conn = new MySqlConnection(connectionSQL);
 try
 {
        MySqlCommand cmd = new MySqlCommand("INSERT INTO A (col1,col2) VALUES ('Value 1', 'Value 2'); SELECT LAST_INSERT_ID()", conn);
        conn.Open();
        lastId = cmd.ExecuteScalar();
      }
      catch (MySqlException ex)
      {
        MessageBox.Show("Can't connect to database" + ex.ToString());
      }
      finally
      {
        conn.Close();
      }

Hết rồi! Code vui nhé!


Leave a Reply

Your email address will not be published. Required fields are marked *