为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪4524236 2019-12-21 12:54:48
我有一个表Messages,其列ID(主键,自动递增)和Content(文本)。我有一个表Users,具有用户名列(主键,文本)和哈希。一个发件人(用户)将一条消息发送给许多收件人(用户),并且一个收件人(用户)可以有很多消息。我创建了一个具有两列的表Messages_Recipients:MessageID(指的是Messages表的ID列和Recipient(指的是Users表中的username列)。该表代表了收件人和消息之间的多对多关系。所以,我的问题是这个。将新消息的ID存储在数据库中后,将创建该ID。但是,如何保留对我刚刚添加的MessageRow的引用,以检索此新的MessageID?我总是可以在数据库中搜索添加的最后一行,但是在多线程环境中可能返回其他行吗?编辑:据我了解,对于SQLite,您可以使用SELECT last_insert_rowid()。但是,如何从ADO.Net调用此语句?我的持久性代码(消息和消息收件人是数据表):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 = messagesRecipients.NewMessages_RecipientsRow();        row.Recipient = recipient;        //row.MessageID= How do I find this??        messagesRecipients.AddMessages_RecipientsRow(row);        UpdateMessagesRecipients();//method not shown    } }private void UpdateMessages(){    messagesAdapter.Update(messages);    messagesAdapter.Fill(messages);}
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 826 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信