以下のコードをご覧ください。
<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 のパラメーター値が null なのはなぜですか? これをトラブルシューティングする方法がわかりません(通常はコードをステップ実行しますが、これはすべて宣言的に宣言されています)。