mysql executescalar last_insert_id(),如何从SQLite表中检索最后一个自动递增的ID?

我有一个表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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值