AccessDataSource 上的更新命令未按预期更新表

Posted

技术标签:

【中文标题】AccessDataSource 上的更新命令未按预期更新表【英文标题】:Update command on AccessDataSource doesn't update table as expected 【发布时间】:2014-09-05 18:05:32 【问题描述】:

更新按钮执行查询,但我的数据库中没有显示任何内容。关于为什么的任何想法?

我已将其移入和移出UpdatePanel。我已经尝试了变量的几个变体,例如 @Atty_ID?,但我似乎无法让它工作。

当我单击更新按钮时,除了页面有时会刷新之外,什么也没有发生。

<asp:UpdatePanel ID="UpdatePanel19" runat="server">
                    <ContentTemplate>
                        <asp:AccessDataSource ID="ChamberLogoDataSource" runat="server" 
                          DataFile="~/App_Data/Attorneys.mdb" 
                          SelectCommand="SELECT ATTORNEYS.CHAMBER FROM ATTORNEYS WHERE ATTY_ID = ?"
                          UpdateCommand="UPDATE ATTORNEYS SET CHAMBER = ? WHERE ATTY_ID = ?">
                          <SelectParameters>
                            <asp:QueryStringParameter Name="ATT_ID" QueryStringField="ATT_ID" />
                          </SelectParameters>
                          <UpdateParameters>
                            <asp:Parameter Name="CHAMBER" />
                            <asp:Parameter Name="ATTY_ID" />                            
                          </UpdateParameters>
                        </asp:AccessDataSource>
                        Add a Chambers logo:<br />
                        <asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" Rows="5" Columns="50"></asp:TextBox>
                        <asp:Button ID="UpdateChambersLogoButton" runat="server" Text="Update" OnClick="UpdateLogo" />
                    </ContentTemplate>
                </asp:UpdatePanel>

下面是代码:

Protected Sub UpdateLogo(ByVal sender As Object, ByVal e As System.EventArgs)
    ChamberLogoDataSource.Update()
End Sub

【问题讨论】:

你看到的是与文本框相关的一切...... 我知道你在做什么。嗯...我只是尝试将 AccessDataSource 放在我的更新面板中,但这也没有什么不同。查看更新问题。 【参考方案1】:

我相信您的更新参数绑定乱序,这可能导致更新失败,因为没有与 WHERE 子句匹配。

像下面这样颠倒 UpdateParameters 的顺序并尝试一下。

<asp:AccessDataSource ID="ChamberLogoDataSource" runat="server" 
                  DataFile="~/App_Data/Attorneys.mdb" 
                  SelectCommand="SELECT ATTORNEYS.CHAMBER FROM ATTORNEYS WHERE ATTY_ID = ?"
                  UpdateCommand="UPDATE ATTORNEYS SET CHAMBER = ? WHERE (ATTY_ID = ?)">
                  <SelectParameters>
                    <asp:QueryStringParameter Name="ATT_ID" QueryStringField="ATT_ID" />
                  </SelectParameters>
                  <UpdateParameters>
                    <asp:Parameter Name="CHAMBER" />
                    <asp:Parameter Name="ATTY_ID" />
                  </UpdateParameters>
                </asp:AccessDataSource>
              <asp:UpdatePanel ID="UpdatePanel19" runat="server">
                <ContentTemplate>
                    Add a Chambers logo:<br />
                    <asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" Rows="5" Columns="50"></asp:TextBox>
                    <asp:Button ID="UpdateChambersLogoButton" runat="server" Text="Update" OnClick="UpdateLogo" />
                </ContentTemplate>
              </asp:UpdatePanel>

【讨论】:

等我找出原因。 +1,因为这个问题与参数的顺序有关。 我把更新面板拿出来了,现在每次页面都会刷新,我想这是有道理的,这也是你使用更新面板的原因,但它仍然没有更新记录。

以上是关于AccessDataSource 上的更新命令未按预期更新表的主要内容,如果未能解决你的问题,请参考以下文章

Gridview 中的更新命令停止工作(以前工作和删除,选择工作正常)

当UITableViewCell被点击时,UILabel未按预期更新的行数

AccessDataSource 控件报告无法识别的数据库

自动布局约束未按预期工作

UIBezierPath 未按预期更新

PostgreSQL 更新未按预期工作