我需要将数据插入到一行中,但是有两种不同的Web表单来自这些数据。因此,在第一个表单上,我可以说我有ProjectManager
,ProjectName
和ProjectDescription
的字段。在第二个表单上,我有Cost
和Budget
。
是否可以使用一个存储过程,仅使用此过程从两个表单插入数据?
Insert into header (ProjectManager, ProjectName, ProjectDescription, Cost, Budget)
Values ('One', 'Two', 'Three', 'Four', 'Five')
我是否需要做一些与SQL Server不同的事情,或者这可以在C#代码中完成吗?或两者?有没有人可以做到这一点的例子?
答案 0 :(得分:0)
是的,您可以将参数传递给存储过程,告诉它调用它的形式。请记住,存储过程应该专注于一件事,所以这可能不是一个好习惯。
CREATE PROCEDURE MultipleFormsCanCallMe
(
@WhatFormCalledMe int
)
AS
BEGIN
IF @WhatFormCalledMe = 1
--Do something
ELSE
--Do something else
END
答案 1 :(得分:0)
为什么不为[IDProject],ProjectManager,ProjectName和ProjectDescription等字段设置一个表,为与[IDProject]有关系的另一个成本和预算表。
这样,每个表可以有两个存储过程,请记住Single responsibility principle
答案 2 :(得分:0)
如果您使用会话变量保存并将所有信息从一页保存并传递到另一页,并且在用户点击提交时在最终页面上将所有这些值传递给一个存储过程,那么您的生活将会简单得多。
流程
WebForm1 (Collect First 3 Variables in Session Variables) --> Redirect To WebForm2 (Collect Last 2 variables ) --> Call SP and pass all 5 Variables.