C# 将嵌套下拉列表的DataValueField传递给更新SQL命令

C# 将嵌套下拉列表的DataValueField传递给更新SQL命令,c#,asp.net,formview,sqlparameter,C#,Asp.net,Formview,Sqlparameter,我有一个嵌套在FormView编辑模式中的动态下拉列表。用户可以从DDL中选择一个值,然后单击Update按钮更新数据库中的一行 <EditItemTemplate> <asp:DropDownList ID="priorityLanguage_DDL" runat="server" DataSourceID="SqlDataSource_Languages" DataTextField="language" DataValueField="ID_language" se

我有一个嵌套在FormView编辑模式中的动态下拉列表。用户可以从DDL中选择一个值,然后单击Update按钮更新数据库中的一行

  <EditItemTemplate>
 <asp:DropDownList ID="priorityLanguage_DDL" runat="server" DataSourceID="SqlDataSource_Languages" DataTextField="language" DataValueField="ID_language" selectedvalue='<%# Eval("priorityLanguage") %>'>        
 </asp:DropDownList> 

<asp:LinkButton class="btn btn-default" ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" onclick="UpdateButton_click"/>
</EditItemTemplate>

<asp:SqlDataSource ID="SqlDataSource_membersDetails" runat="server" 
    ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" 
           SelectCommand="SELECT * FROM [editorDetail] WHERE [IDuser]= @IDowner" 
    UpdateCommand="UPDATE [priorityLanguage] = @priorityLanguage_ddl_par WHERE [ID_editorDetail] = @ID_editorDetail">

<UpdateParameters>
                  <asp:Parameter Name="priorityLanguage_ddl_par" Type="Int32" />
               </UpdateParameters>
</asp:SqlDataSource>
我做错了什么?

您需要或代替
priorityLanguage\u DDL.DataValueField
DataValueField用于将数据源的列名分配给DataValue字段。它将为您提供列名,但会为dropdownlist中的选定项指定该列的值

protected void UpdateButton_click(object sender, EventArgs e)
    {   

        DropDownList priorityLanguage_DDL = FormView3.FindControl("priorityLanguage_DDL") as DropDownList;
        SqlDataSource_membersDetails.UpdateParameters["priorityLanguage_ddl_par"].DefaultValue = (priorityLanguage_DDL.DataValueField);               

    }