C#codebehind中的多个不同SQL更新命令

C#codebehind中的多个不同SQL更新命令,c#,asp.net,sql,sql-update,code-behind,C#,Asp.net,Sql,Sql Update,Code Behind,这里是ASP.net的新手,所以请保持简单的回答 我试图让一个按钮在不同的表上运行许多不同的更新命令来更新相同的信息。我发现很多网站都在谈论如何做类似的事情,但没有一个网站能让我的网站达到我的目的。现在我有 protected void Page_Load(object sender, EventArgs e) { } protected void cancel_click(object sender, EventArgs e) { Response.Redirect("biosupd

这里是ASP.net的新手,所以请保持简单的回答

我试图让一个按钮在不同的表上运行许多不同的更新命令来更新相同的信息。我发现很多网站都在谈论如何做类似的事情,但没有一个网站能让我的网站达到我的目的。现在我有

protected void Page_Load(object sender, EventArgs e)
{
}

protected void cancel_click(object sender, EventArgs e)
{
    Response.Redirect("biosupdate.aspx");
}

protected void update_click(object sender, EventArgs e)
{
    AccessDataSource1.UpdateCommand = "UPDATE [1U] SET [bios] = ? WHERE [mobogroup] = ?";
    AccessDataSource1.Update();

    AccessDataSource1.UpdateCommand = "UPDATE [EB] SET [bios] = ? WHERE [mobogroup] = ?";
    AccessDataSource1.Update();

    AccessDataSource1.UpdateCommand = "UPDATE [PPC] SET [bios] = ? WHERE [mobogroup] = ?";
    AccessDataSource1.Update();
}
但这将忽略前两个集合,只更新[PPC]或组中的最后一个集合。我试着把
Thread.Sleep(1000)在集合之间,以防每个操作只需要更多的时间来完成或做些什么,但正如我所假设的那样,它什么也没做。我也尝试过使用UNION或;将多个命令串在一起,但仍然一无所获


有什么建议可以让它发挥作用吗?或者甚至可以用更好的方法来实现同样的结果?

问题在于您的AccessDataSource1,您将更新命令替换了2次。 你能做什么? 1-在每次之后执行SQL。
2-Creater AccessDataSource2和AccessDataSource3

问题在于您的AccessDataSource1,您将更新命令替换了2次。 你能做什么? 1-在每次之后执行SQL。
2-Creater AccessDataSource2和AccessDataSource3

触发
update\u click
事件的控件的ASP.Net标记是什么样子的?最后一个
UPDATE
语句是默认情况下硬编码到标记页源中的
AccessDataSource1.UpdateCommand
中的语句吗?有可能你的
update\u click
方法实际上从未运行过,因为据我所知,代码看起来很好。按钮本身很简单,现在没有硬编码的更新命令。我担心这可能会干扰后面代码的更新。既然您说了
CommandName=“Update”
,那么如果按钮嵌入到数据控件中(即
GridView
DetailsView
),那么它就起到了触发更新命令的作用。但我认为
.Update()
会覆盖该行为。检查文档…是的,我想你是对的,按钮是更新命令。我只是试着从按钮上删除它,现在没有任何更新,所以代码隐藏AccessDataSource.Update()行没有做任何事情。它实际上是一个formview(我想这没关系,只是以防万一……)嗯,这很奇怪。你能试着调试并单步执行代码,看看
update\u click
中的代码行是否触发了?例如,删除一个
响应以查看是否命中它。同时我会在这里做个测试。。。编辑:我刚刚尝试了一个测试,我使用了
MyDataSource.Update
,效果很好。如果有其他东西阻止该事件正常运行,您能否从加载
页面开始提供更多与更新相关的代码?对于触发
更新\u单击
事件的控件,ASP.Net标记是什么样子的?最后一个
UPDATE
语句是默认情况下硬编码到标记页源中的
AccessDataSource1.UpdateCommand
中的语句吗?有可能你的
update\u click
方法实际上从未运行过,因为据我所知,代码看起来很好。按钮本身很简单,现在没有硬编码的更新命令。我担心这可能会干扰后面代码的更新。既然您说了
CommandName=“Update”
,那么如果按钮嵌入到数据控件中(即
GridView
DetailsView
),那么它就起到了触发更新命令的作用。但我认为
.Update()
会覆盖该行为。检查文档…是的,我想你是对的,按钮是更新命令。我只是试着从按钮上删除它,现在没有任何更新,所以代码隐藏AccessDataSource.Update()行没有做任何事情。它实际上是一个formview(我想这没关系,只是以防万一……)嗯,这很奇怪。你能试着调试并单步执行代码,看看
update\u click
中的代码行是否触发了?例如,删除一个
响应以查看是否命中它。同时我会在这里做个测试。。。编辑:我刚刚尝试了一个测试,我使用了
MyDataSource.Update
,效果很好。如果有其他东西阻止事件正常运行,您能否从
页面加载开始提供更多与更新相关的代码?设置
更新命令有什么问题?这难道不应该同样有效吗?嗯,我认为AccessDataSource1.Update();行正在执行SQL,这可以解释它的行为。在每次更新之间执行此命令的实际命令是什么?设置
UpdateCommand
有什么错?这难道不应该同样有效吗?嗯,我认为AccessDataSource1.Update();行正在执行SQL,这可以解释它的行为。在每次更新之间执行此操作的实际命令是什么?