Tag: junction table

如何从SQLite表中检索最后一个自动增加的ID?

我有一个表的消息与列ID(主键,自动增量)和内容(文本)。 我有一个用户列用户名(主键,文本)和哈希。 消息由一个发件人(用户)发送给多个收件人(用户),而收件人(用户)可以有多个消息。 我创build了一个Message_Recipients表,它有两列:MessageID(指的是Messages表和Recipient的ID列(指Users表中的username列)。这个表代表了收件人和消息之间的多对多关系。 所以,我有这个问题。 新消息的ID将在存储在数据库中之后创build。 但是我怎样才能持有我刚添加的MessageRow的引用来检索这个新的MessageID呢? 我总是可以在数据库中search当前添加的最后一行,但是可能会在multithreading环境中返回不同的行? 编辑:据我所知,SQLite你可以使用SELECT last_insert_rowid()。 但是,我怎样从ADO.Net中调用这个语句呢? 我的持久性代码(消息和消息接收者是DataTables): public void Persist(Message message) { pm_databaseDataSet.MessagesRow messagerow; messagerow=messages.AddMessagesRow(message.Sender, message.TimeSent.ToFileTime(), message.Content, message.TimeCreated.ToFileTime()); UpdateMessages(); var x = messagerow;//I hoped the messagerow would hold a //reference to the new row in the Messages table, but it does not. foreach (var recipient in message.Recipients) { var row […]