2012-05-13 38 views

回答

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 

過程來調用第二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方法。檢查方法的返回值。如果它是一個有效的號碼,那意味着客人信息被保存。使用該Guest 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!"); 
} 
} 
3
無論數據被公佈,你可以插入

但是,只要你想,你要儘可能多的表。控制器與表格無關,因此沒有限制。

我建議嘗試寫一些東西,如果你可以得到它的工作發佈你的嘗試在這裏(堆棧溢出...不是這個特別的帖子)描述什麼不工作。這更符合SO格式,而不是模糊的非代碼特定問題。

相關問題