AccessDataSource上的更新命令不会按预期更新表

时间:2014-09-05 18:05:33

标签: asp.net ms-access data-binding accessdatasource

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

我已将其移入和移出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

1 个答案:

答案 0 :(得分: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>