簡體   English   中英

INSERT聲明為一對多關系

[英]INSERT statement for One to Many relationship

所以我正在開發一個項目來編目我的游戲,我遇到了一個問題。 我有一個帶有兩個表的數據庫,如下所示:

Game_Information

  • gameId(PK)是身份(自動增量)
  • gamePrice
  • 名稱

Game_Notes

  • noteId(PK)是身份(自動增量)
  • 筆記
  • noteDate
  • 游戲ID(FK)

一個游戲可以有很多音符,因此兩個表之間存在一對多的關系,其中“Game_Notes”中名為“gameId”的列是FK /引用相同名稱的“Game_Information”的主鍵。

現在在Webmatrix中,我編寫了一個頁面,讓我輸入游戲的價格,名稱和版本。 在同一頁面中,我還可以添加關於游戲的注釋。 在帖子上,頁面從文本框中獲取信息並嘗試執行以下操作:

db.Execute("INSERT INTO Game_Information (gamePrice, name, edition) VALUES (@0, @1, @2)", gamePrice, name, edition); 
db.Execute("INSERT INTO Game_Notes(notes, noteDate) VALUES (@0, @1)", notes, noteDate);

現在這可以工作並將信息放在正確的表中,但它將“Game_Notes”中的gameId(FK)留空。

我想要的是“Game_Information”中分配給gameId(PK)的數字反映在“Game_Notes”中的gameId(FK)中。

任何人都可以幫我這個或指向我能讀的文章? 謝謝。

- 更新 - 讓問題更加清晰。

如果我理解你的問題是正確的,那么你正試圖完成兩件事:

  1. 在Game_Information中獲取新插入記錄的gameId
  2. 在Game_Notes的以下插入語句中使用該gameId

雖然有無數種方法可以做到這一點,但使用“輸出”值將是一個建議。 就像是:

var id = db.QueryValue("INSERT INTO Game_Information (gamePrice, name, edition) output Inserted.gameId VALUES (@0, @1, @2)", gamePrice, name, edition); 

查看一些帖子以獲取更多相關信息: Sql Server在insert語句后返回identity列的值

然后,在以下語句中使用該id:

db.Execute("INSERT INTO Game_Notes(gameId, notes, noteDate) VALUES (@0, @1, @2)", id, notes, noteDate);

免責聲明:我沒有測試任何這些,只是試圖指出你正確的方向。

您需要包括gameId在你的第二個db.execute聲明

db.Execute("INSERT INTO Game_Notes(gameId, notes, noteDate) VALUES (@0, @1, @2)", gameId, notes, noteDate);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM