Asp.net SQLDataSource更新不应包含空值

Asp.net SQLDataSource更新不应包含空值,asp.net,Asp.net,请查看以下代码: <asp:GridView ID="GVHistoricNames" runat="server" DataSourceID = "SQLHistoricNames" AutoGenerateColumns="False" AllowPaging="True" HorizontalAlign="Center" DataKeyNames="id"> <Column

请查看以下代码:

<asp:GridView ID="GVHistoricNames" runat="server" 
                DataSourceID = "SQLHistoricNames" AutoGenerateColumns="False" 
                AllowPaging="True" HorizontalAlign="Center" DataKeyNames="id">
                <Columns>
                    <asp:TemplateField HeaderText="id">
                        <ItemTemplate>
                            <asp:HyperLink ID="idHyperlink" runat="server" NavigateUrl='<%# Eval("id", "frmidHistoricNames.aspx?id={0}") %>' Text='<%# Bind("id") %>'></asp:HyperLink>                          
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="LastUpdated">
                        <ItemTemplate>
                            <asp:Label ID="LastUpdatedLabel" runat="server" Text='<%# Bind("LastUpdated") %>'></asp:Label>                           
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="LastChecked">
                        <ItemTemplate>
                            <asp:Label ID="LastCheckedLabel" runat="server" Text='<%# Bind("LastChecked") %>'></asp:Label>                           
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Usercode">
                        <ItemTemplate>
                        <asp:DropDownList ID="ddlUsercode" runat="server" SelectedValue='<%# Bind("Usercode") %>'>
                        </asp:DropDownList>
                        </ItemTemplate>       
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                            <ItemTemplate>
                                <asp:LinkButton ID="UpdateHistoricName" runat="server" CausesValidation="False" CommandName="Update" Text="Update"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                </Columns>
            </asp:GridView>

            <asp:SqlDataSource ID="SQLidHistoricNames" runat="server" UpdateCommand="update dbaperson set Usercode=@Usercode WHERE ID=@ID">
            <SelectParameters>

              <asp:Parameter Name="Usercode" Type="String" />
           </SelectParameters>
           <UpdateParameters>
               <asp:Parameter Name="id" Type="Int32" />
                <asp:Parameter Name="Usercode" Type="String" />

              </UpdateParameters>


运行update语句时,@Usercode的参数始终为null。@ID的参数不正确。为什么@Usercode的参数值为空?我不知道如何解决这个问题(我通常会单步执行代码,但这都是声明性的)。

您不也需要
@破折号吗,我已经更新了问题。更新参数在那里。您的
下拉列表中似乎没有任何项目
@Richard Deeming,下拉列表是在代码隐藏中创建的。