gpt4 book ai didi

c# - ASP.NET FormView 无法执行存储过程

转载 作者:行者123 更新时间:2023-11-29 19:44:16 25 4
gpt4 key购买 nike

我在将项目更新到 ASP.NET GridView(旧代码)时遇到困难。

我的存储过程可以简化为:

UPDATE myTable  SET FieldA = @FieldA, FieldB = @FieldB, FieldC = @FieldC    WHERE Id = @Id

我的数据源如下:

  <asp:SqlDataSource ID="DS" runat="server" ConnectionString="<%$ ConnectionStrings:wsg_DataWriter %>"
SelectCommand="MySelectSP" SelectCommandType="StoredProcedure"
UpdateCommand="MyUpdateSP" UpdateCommandType="StoredProcedure">
<SelectParameters>
<asp:QueryStringParameter Name="Id" QueryStringField="Id" />
</SelectParameters>
<UpdateParameters>
<asp:QueryStringParameter Name="idWsgProgrammeOption" QueryStringField="idWsgProgrammeOption" />
</UpdateParameters>
</asp:SqlDataSource>

我的FormView如下:

          <asp:FormView ID="FV" runat="server" DataKeyNames="Id"  DataSourceID="DS"   >
<EditItemTemplate>
<asp:TextBox ID="TB_FieldA" runat="server" Text='<%# Bind("FieldA") %>' />

<asp:ImageButton ID="IB_FieldB" runat="server" CommandName="UpdateProgramme" CommandArgument='<%# Eval("Id") %>'
ImageUrl='<%# (!Convert.ToBoolean(Eval("FieldB"))) ? "~/1.gif" : "~/2.gif" %>' OnCommand="On_FieldB"/>

<asp:TextBox ID="TB_FieldC" T runat="server" Text='<%# Bind("FieldC") %>' />

<asp:ImageButton ID="i_imgbtnEnregistrer" runat="server" AlternateText="Enregistrer"
CommandName="Update" ImageUrl="~/App_Themes/admindefaut/image/bouton/enregitrer.gif" OnClick="OnClick"/>

</EditItemTemplate>
</asp:FormView >

它不起作用:我想存储过程无法执行。

我非常接近让它发挥作用。该问题似乎来自 FieldB 与 SP 的绑定(bind)。

如果我这样改变它,效果很好:

<UpdateParameters>
<asp:QueryStringParameter Name="idWsgProgrammeOption" QueryStringField="idWsgProgrammeOption" />
</UpdateParameters>

-->

 <UpdateParameters>
<asp:QueryStringParameter Name="idWsgProgrammeOption" QueryStringField="idWsgProgrammeOption" />
<asp:Parameter Name="FieldB" />
</UpdateParameters>

并添加:

 protected void OnClick(object sender, EventArgs e) 
{
FV.UpdateParameters["FieldB"].DefaultValue= "1";
}

因此,.NET 设法获取 FieldA 和 FieldB 的正确值并将它们传递给 SP。但它无法获取正确的 FieldB 值。

有人可以帮我吗?我需要传递正确的 FieldB 值而不使用后面的代码。

最佳答案

尝试使用 Bind 关键字(而不是 Eval)将 FieldB 绑定(bind)到 aspx 页面上的隐藏字段。

关于c# - ASP.NET FormView 无法执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com