我必须将以下变量保存到数据库中:
string PoliciaID = Session["username"];
string PlacaAuto = Page.Request.QueryString["placaauto"];
string Carnet = Page.Request.QueryString["carnet"];
string Fecha = DateTime.Now;
string TipoInfraccion = Page.Request.QueryString["tipo"];
PoliciaID是另一个名为 Policia 的表的主键,而Carnet是名为 Persona 的表的主键。
如何使用C#在这种情况下保存信息?
感谢您的时间!
答案 0 :(得分:4)
两个INSERT或UPDATE命令,每个表一个,作为事务上下文中的单个工作单元执行。两者都应该成功,或者两者都应该失败并回滚。
This可能会帮助您了解交易。
答案 1 :(得分:1)
正如@duffymo所说
DECLARE @FirstTab TABLE (Col1 INT, Col2 INT)
DECLARE @SecondTab TABLE (Col3 INT, Col4 INT)
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO @FirstTab ( Col1, Col2 ) VALUES ( 1,2 )
INSERT INTO @SecondTab ( Col3, Col4 ) VALUES ( 3,4 )
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
(您可能还想添加一些机制来与调用者进行通信,无论是成功(并提交更改)还是失败(回滚))
所以这里的想法是两个插入两个都会发生,或者两者都不发生。如果在此过程中抛出异常,它将跳转到catch
块以回滚已经完成的任何事情。但通常它只会做两个INSERTS,提交工作,并继续前进。