0

这是我的数据库。我想做一个存储过程来将数据插入到 Reservation 表中。我想插入 room_id、数据签入和其他字段,但我想从 Guest 表中放入名字、姓氏、电话和其他字段,而不是 guest_id。这可能吗?

在此处输入图像描述

4

2 回答 2

3

无论发布什么数据,您都可以插入任意数量的表格。控制器与表无关,因此没有限制。

我建议尝试写一些东西,如果你能让它工作,在这里发布你的尝试(堆栈溢出......不是这个特定的帖子)描述什么不起作用。这更适合 SO 格式,而不是模糊的非代码特定问题。

于 2012-05-13T23:43:30.607 回答
1

我将创建 2 个存储过程。一个用于保存客人信息,一个用于保存预订信息。

CREATE PROCEDURE SaveGuest(@firstName varcahr(50),@lastName varchar(50),@phone varchar(15))
AS
 BEGIN

    INSERT INTO Guest(FirstName,LastName,Phone) VALUES (@firstName,@lastName,@phone);
    RETURN SCOPE_IDENTITY()

 END

调用 Second Proc 的过程

CREATE PROCEDUE SaveReservation(@roomId int,@guestId int,@price decimal)
AS
 BEGIN
   INSERT INTO Reservation(Room_ID,Guest_ID,Price) VALUES (@roomID,@guestId,@price)
   RETURN SCOPE_IDENTITY()
 END

这是一个样本。您需要为所有不为空的数据库列添加字段。

现在创建 2 个方法来保存这些数据。SaveGuestSaveReservation。从您的 SaveGuest 方法返回新保存的访客 ID。现在在您的操作方法调用中,首先是 SaveGuest 方法。检查方法的返回值。如果是有效号码,则表示客人信息已保存。使用该访客 ID 保存第二部分(预订);像这样的东西

public ActionResult SAve(YourViewMolde model)
{
int guestId=  SaveGuest("john","alex",....);
if(guestID>0)
 {
   SaveReservation(guestId,34,...);
 }
 else
 {
   model.AddModelError("","Error in saving Guest info!");
 }
}
于 2012-05-13T23:52:55.303 回答