タグ付けされた質問 「junction-table」

5
SQLiteテーブルから最後の自動インクリメントIDを取得するにはどうすればよいですか?
ID(主キー、自動インクリメント)列とコンテンツ(テキスト)列を持つメッセージテーブルがあります。 ユーザー名(主キー、テキスト)とハッシュの列を持つユーザーテーブルがあります。 メッセージは1人の送信者(ユーザー)から多くの受信者(ユーザー)に送信され、受信者(ユーザー)は多くのメッセージを持つことができます。 MessageID(MessagesテーブルのID列を参照)とRecipient(Usersテーブルのusername列を参照)の2つの列を持つMessages_Recipientsテーブルを作成しました。このテーブルは、受信者とメッセージの間の多対多の関係を表します。 だから、私が持っている質問はこれです。新しいメッセージのIDは、データベースに保存された後に作成されます。しかし、この新しいMessageIDを取得するために、追加したばかりのMessageRowへの参照を保持するにはどうすればよいですか?もちろん、最後に追加された行をデータベースでいつでも検索できますが、マルチスレッド環境では別の行が返される可能性がありますか? 編集:私はSQLiteについて理解しているので、を使用できますSELECT last_insert_rowid()。しかし、ADO.Netからこのステートメントを呼び出すにはどうすればよいですか? 私の永続性コード(メッセージとmessagesRecipientsは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 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.