首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SqlDataAdapter使用UpdateParameters更新数据库

使用SqlDataAdapter使用UpdateParameters更新数据库
EN

Stack Overflow用户
提问于 2014-03-28 19:17:03
回答 2查看 69关注 0票数 0

我有一个问题,我需要帮助,我有一个来自SqlDataSource的网格视图绑定

代码语言:javascript
复制
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="SqlDataSource2">
    <Columns>
        <asp:CommandField ShowEditButton="true" />
        <asp:BoundField DataField="DateOpened" HeaderText="DateOpened" 
            SortExpression="DateOpened" />
        <asp:BoundField DataField="rName" HeaderText="rName" SortExpression="rName" />
        <asp:BoundField DataField="DateOfArrival" HeaderText="DateOfArrival" 
            SortExpression="DateOfArrival"/>
        <asp:BoundField DataField="Quantity" HeaderText="Quantity" 
            SortExpression="Quantity"/>
        <asp:BoundField DataField="sName" HeaderText="sName" SortExpression="sName" />
        <asp:TemplateField HeaderText="osName" SortExpression="osName">
            <EditItemTemplate>
                <asp:DropDownList runat="server" ID="OrderStatusDDL">
                <asp:ListItem>הוזמן</asp:ListItem>
                <asp:ListItem>מתעכב</asp:ListItem>
                <asp:ListItem>התקבל</asp:ListItem>
                </asp:DropDownList> 
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("osName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

SqlDataSource

代码语言:javascript
复制
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:igroup9_test1ConnectionString %>" 
    SelectCommand="spGetOrdersListForProject" 
    SelectCommandType="StoredProcedure" UpdateCommandType="StoredProcedure" UpdateCommand="spUpdateOrderStatus" >
    <SelectParameters>
        <asp:ControlParameter ControlID="ProjectIDHolder" DefaultValue="" 
            Name="ProjectID" PropertyName="Text" Type="Int32" />
    </SelectParameters>

    <UpdateParameters>
       <asp:ControlParameter ControlID="ProjectIDHolder" DefaultValue="" 
               Name="@projectid" PropertyName="Text" Type="Int32" />
       <asp:ControlParameter Name="@osID"  PropertyName="Text" Type="Int32"  
               ControlID="OrderStatusDDL" />
    </UpdateParameters>
</asp:SqlDataSource>

我想编辑osName列,当我按下Edit按钮并尝试从下拉列表中选择一个不同的值时,我想更新数据库中的osId (int),但是我得到了以下错误:

在OrderStatusDDL '@osID‘中找不到控件'OrderStatusDDL’。

EN

回答 2

Stack Overflow用户

发布于 2014-03-28 19:23:48

GridView在使用MasterPage的页面上吗?如果是这样,则需要在控件前面加上ContentPlaceHolder的ID。

代码语言:javascript
复制
<asp:ControlParameter Name="@osID"  PropertyName="Text" Type="Int32"
ControlID="ContentPlaceholderID$OrderStatusDDL" />
票数 0
EN

Stack Overflow用户

发布于 2014-03-28 20:31:45

看起来,您正在尝试将OrderStatusDDL.SelectedValue的文本值传递到int字段。尝试将Type更改为string,看看这是否有帮助。

代码语言:javascript
复制
<asp:ControlParameter Name="@osID"  PropertyName="Text" Type="String" ControlID="OrderStatusDDL" />

我不知道这会不会有帮助,但这可能是个好的开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22721354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档