【问题标题】:Procedure to store and retrieve data to many tables将数据存储和检索到多个表的过程
【发布时间】:2026-02-12 18:45:02
【问题描述】:

我需要创建一个将数据存储到 3 个表中的过程,同时使用每个表中的数据来引用其余的表。

例如:我正在创建一个团队挑战数据库。这将允许一个人挑战另一个人,设置谁将在彼此的团队中,然后存储到数据库中。

我有一个存储matchId, initiatorName, teamOneListIdteamTwoListId 的主表。

  • TeamOneList:ID, memberID, TeamName
  • TeamTwoList:ID, memberID, TeamName

如您所见,我需要一次将数据添加到所有这些中(虽然团队规模和限制因 1v1、3v3 等而异)。

我正在使用 C# Asp.Net,并且精通事务。我只是不太了解数据库。

编辑:在漫长的一天结束时写下这篇文章。
问题是,解决此问题的最简单方法或方法是什么?

我试图弄乱存储过程,我可以将身份转发到不同的表,但似乎我仍然需要为两个团队以及每种类型的事件创建一个新的存储过程。

我可以进行上述工作的唯一方法是开始一场比赛,获取最后一行的信息,然后将其转发到将其余 2 个团队信息绑定到数据库中的第二个页面。

所以重申一下,我需要知道如何一次完成所有这些操作,或者有办法不只是获取最后一行(这可能是错误的?)。

【问题讨论】:

  • 这更像是“这里是规格”,请发布代码。 Joel Spolsky 和 ​​Jeff Atwood(本网站的创建者)在他们的播客中明确表示,对“为我做我的工作”问题的适当回应是不投赞成票或反对票,也没有回复。它们最终会被机器人作为非活动问题删除。
  • 你试过什么?这似乎是一个“为我做我的工作”类型的问题。您需要做的就是启动一个事务,然后插入到您的表中,然后提交/回滚事务。如果其中一部分有困难,请澄清,以便有人可以提供一个没有完成所有工作的有针对性的好答案
  • 您需要提出一个实际问题。你知道,带有“?”的东西最后。
  • @@identity 帮助我将 ID 存储在不同的表中,但不是以我需要的方式。我在这里重新定义了我的问题以及我的数据库(更易于管理):*.com/questions/3907681/…

标签: c# asp.net sql-server stored-procedures


【解决方案1】:

你可以试试SqlDataAdapter class

链接:http://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqldataadapter(v=vs.80).aspx

var connection = new SqlConnection("...");//You can adjust your string connection
var adapter = new SqlDataAdapter();

// Create the SelectCommand.
var command = new SqlCommand("YourSelectStoredProcedure", connection); //You can adjust your name of stored procedure
command.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand = command;

// Create the InsertCommand.
command = new SqlCommand("YourInsertStoredProcedure", connection); //You can adjust your name of stored procedure
command.CommandType = CommandType.StoredProcedure;
adapter.InsertCommand = command;

【讨论】: