SQL/ c#为客户预订旅行



我正在尝试制作一个非常简单的应用程序,让客户预订旅行。基本上,他们输入姓名、地址、Civic、电话,然后根据他们想预订的行程输入1-5之间的数字。例如,旅行1等于从柏林到巴黎的旅行,旅行2等于从斯德哥尔摩到任何地方的旅行,等等。

我需要最后插入到Customer表中的ID与Booking相关。客户,这样当客户按Book Trip时,他的信息被插入到Customer表中,他的ID +什么行程被插入到我的Booking表

LAST_INSERTED_ID是自动递增的,所以我不能让它正常工作。

Customer表包含客户的所有信息,Booking表由Customer[references Customer]行组成。ID]和Trip[引用一个Trip。ID]在我的行程表

我很抱歉,如果我不明白,只是不能让它工作,不知道如何继续…感谢这里的任何帮助!

 string sql = "Begin; INSERT INTO Customer(Name, PIN, Address, Phone) VALUES(@param2, @param3, @param4, @param5); INSERT INTO Booking(Customer, Trip) VALUES(LAST_INSERT_ID(), @param6);";

 SqlCommand command = new SqlCommand(sql, connection);
 command.Parameters.Add("@param2", SqlDbType.VarChar, 255).Value = txtBoxName.Text;
 command.Parameters.Add("@param3", SqlDbType.Char, 11).Value = textBoxPIN.Text;
 command.Parameters.Add("@param4", SqlDbType.VarChar, 255).Value = textBoxAddress.Text;
 command.Parameters.Add("@param5", SqlDbType.VarChar, 255).Value = textBoxPhone.Text;
 command.Parameters.Add("@param6", SqlDbType.Int, 1).Value = txtBoxTrip.Text;
 command.CommandType = CommandType.Text;
 command.ExecuteNonQuery();
 connection.Close();

首先你必须把Customer表中的LAST_INSERTED_ID变成identity

如果已经,那么你可以继续

那么你的SQL查询应该是
DECLARE @Last_Id int
INSERT INTO Customer(Name, PIN, Address, Phone) VALUES(@param2, @param3, @param4, @param5)
SET @Last_Id=SCOPE_IDENTITY()
INSERT INTO Booking(Customer, Trip) VALUES(@Last_Id, @param6)

这可能会解决你的问题。

但是为了更好的性能和安全性,您总是需要使用stored proceduretransaction

相关内容

  • 没有找到相关文章

最新更新