Tôi có một truy vấn để chèn một hàng vào một bảng có một trường được gọi là ID, được điền bằng cách sử dụng AUTO_INCREMENT trên cột. Tôi cần phải nhận được giá trị này cho các bit tiếp theo của chức năng, nhưng khi tôi chạy sau, nó luôn luôn trả về 0 mặc dù giá trị thực tế không phải là 0:Lấy id của hàng được chèn bằng C#
MySqlCommand comm = connect.CreateCommand();
comm.CommandText = insertInvoice;
comm.CommandText += "\'" + invoiceDate.ToString("yyyy:MM:dd hh:mm:ss") + "\', " + bookFee + ", " + adminFee + ", " + totalFee + ", " + customerID + ")";
int id = Convert.ToInt32(comm.ExecuteScalar());
Theo hiểu biết của tôi, điều này sẽ trả lại ID cột, nhưng nó chỉ trả về 0 mỗi lần. Bất kỳ ý tưởng?
EDIT:
Khi tôi chạy:
"INSERT INTO INVOICE (INVOICE_DATE, BOOK_FEE, ADMIN_FEE, TOTAL_FEE, CUSTOMER_ID) VALUES ('2009:01:01 10:21:12', 50, 7, 57, 2134);last_insert_id();"
tôi nhận được:
{"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 'last_insert_id()' at line 1"}
1. Bạn có thể gửi CommandText thức đó được thực hiện? 2.Các hồ sơ có thực sự được chèn vào không? –
Tôi đã đăng truy vấn, lỗi và có, các hàng đang được chèn. – Elie
OK, làm thế nào về "SELECT last_insert_id();" cuối cùng? –