C# 一对多关系的INSERT语句

C# 一对多关系的INSERT语句,c#,sql,webmatrix,C#,Sql,Webmatrix,所以我正在做一个项目,对我的游戏进行分类,我遇到了一个问题。我有一个DB,其中有两个表,细分如下: 游戏信息 玩家ID(PK)是身份(自动递增) 游戏价格 名字 版本 游戏注释 noteId(PK)是标识(自动递增) 注释 注日期 配子ID(FK) 一个游戏可以有多个注释,因此两个表之间存在一对多关系,其中“game_notes”中称为“gameId”的列是FK/以相同的名称引用“game_Information”的主键 现在在Webmatrix中,我编写了一个页面,可以输入游戏的价格、

所以我正在做一个项目,对我的游戏进行分类,我遇到了一个问题。我有一个DB,其中有两个表,细分如下:

游戏信息

  • 玩家ID(PK)是身份(自动递增)
  • 游戏价格
  • 名字
  • 版本
游戏注释

  • noteId(PK)是标识(自动递增)
  • 注释
  • 注日期
  • 配子ID(FK)
一个游戏可以有多个注释,因此两个表之间存在一对多关系,其中“game_notes”中称为“gameId”的列是FK/以相同的名称引用“game_Information”的主键

现在在Webmatrix中,我编写了一个页面,可以输入游戏的价格、名称和版本。在同一页中,我还可以添加关于游戏的注释。在post中,page从文本框中获取信息并尝试执行以下操作:

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_信息”中分配给gameId(PK)的数字反映在“Game_注释”中的gameId(FK)中

有人能帮我做这件事,或者指向我能读的文章吗?谢谢

-更新-
使问题更清楚。

您需要在第二条db.execute语句中包含
gameId

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

如果我没弄错你的问题,你想完成两件事:

  • 在Game_信息中获取新插入记录的gameId
  • 在下面的insert语句中使用该gameId添加游戏注释
  • 尽管有无数种方法可以做到这一点,但使用“输出”值将是一个建议。比如:

    var id = db.QueryValue("INSERT INTO Game_Information (gamePrice, name, edition) output Inserted.gameId VALUES (@0, @1, @2)", gamePrice, name, edition); 
    
    有关这方面的更多信息,请查看一些帖子:

    然后,在以下语句中使用该id:

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

    免责声明:我没有测试过这一切,只是想给你指出正确的方向。

    我犯了一个错误。用于键入“gamePrice”而不是“gameId”。gameId是一个身份。人的大脑今天是油炸的。你们应该编辑你们的问题,我不再按照你们想要的。更新的问题,让它清楚。抱歉造成混淆。GameID应该是
    Game\u Information
    中的标识,但在
    Game\u Notes
    中是外键。首先,您应该创建存储过程,然后使用scope\u identity()将GameID插入GameNotes感谢帮助。尝试了您的代码,虽然它只是在“Game_Notes”的所有条目中添加了“1”,但这是一个很好的开始。将db.Execute更改为db.QueryValue可以解决“1”的问题。