SQLDataSource更新在不应该包含null时包含null

时间:2012-11-23 13:02:43

标签: asp.net

请查看以下代码:

<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>

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

0 个答案:

没有答案