我正在使用SQLite编写INSERT,要么我正在使用AUTOINCREMENT,要么只使用ROWID作为主键。执行INSERT后,如何找到刚插入的行的主键是什么?
我知道如果我在Sql Server中工作该怎么办,但这是SQLite。
这是我的代码:
public bool AddPlanet(Planet p)
{
bool result = false;
SQLiteConnection sqlConnection;
using (sqlConnection = new SQLiteConnection(ConnString))
{
sqlConnection.Open();
sqlCommand = new SQLiteCommand(sqlConnection);
sqlCommand.CommandText =
String.Format(
"insert into planet (name, satellites) values ('{0}',{1})"
, p.Name
, p.Satellites.ToString()
);
sqlCommand.CommandType = CommandType.Text;
int x = sqlCommand.ExecuteNonQuery();
// WHAT DO I DO HERE TO FIND OUT THE ROWID OF
// THE ROW THAT WAS JUST INSERTED?
if (x > 0) result = true;
sqlConnection.Close();
}
return result;
}
答案 0 :(得分:0)
对于SQLite,您可以使用
SELECT last_insert_rowid()
这是另一个包含更多详细信息的stackoverflow帖子
How to retrieve the last autoincremented ID from a SQLite table?