using (OdbcConnection con = new OdbcConnection(ConnStr))
using (OdbcCommand cmd = new OdbcCommand("INSERT INTO tblUsers(FirstName, LastName, UserName, Password, EmailId, Created_Date, typeid) VALUES ('" + ObjUserProp.FirstName + "','" + ObjUserProp.LastName + "','" + ObjUserProp.UserName + "','" + ObjUserProp.Password + "','" + ObjUserProp.EmailId + "','" + ObjUserProp.Created_Date + "'," + ObjUserProp.TypeId + ")", con))
{
con.Open();
using (OdbcCommand cmd1 = new OdbcCommand("INSERT INTO tblUsersRelation(UserId,usertypeid) VALUES ( LAST_INSERT_ID() ," + ObjUserProp.TypeId + ")", con))
{
IsDone = cmd.ExecuteNonQuery();
return IsDone;
}
}
记录仅插入1个表中。请告诉我如何获取最新的自动增量ID值。
答案 0 :(得分:2)
最好使用stored procedures,“例程”,因为它们在MySql中被引用,并传入输入参数。
答案 1 :(得分:1)
这看起来像你想要的 - SELECT LAST_INSERT_ID()(来自http://dev.mysql.com/doc/refman/5.5/en/getting-unique-id.html)。
本质上我会更改第一个sql语句,在插入后调用它。然后,您可以获取返回的值并在后续的SQL查询中使用它。
据说它应该按照你的方式工作。虽然我当然假设您实际上缺少cmd1.ExecuteNonQuery()行。如果你真的没有那条线,那么这就是第二张表没有被更新的原因。
答案 2 :(得分:0)
select MAX(id)
from tblUsers
我不知道C#,但我想这就是你要找的......
答案 3 :(得分:0)
您可以使用MySQL函数LAST_INSERT_ID()
来检索由AUTO_INCREMENT生成的最后插入的id。
答案 4 :(得分:0)
您需要使用LAST_INSERT_ID()
以及ExecuteScalar
来返回记录。使用ExecuteNonQuery
不会返回任何内容。
除了您的问题,您还应该使用parameterized queries。