UpdateParameter不起作用
|
我正在尝试手动设置更新参数。该命令成功执行,我可以拉回数据以确认参数设置正确。但是我的SQL更新语句不会执行。如果我手动定义一个默认值或在update语句中手动输入一个值,它可以正常工作,但是如果我尝试通过一个命令来设置它,则它不起作用。
这是我的代码:
SQL数据源
<asp:SqlDataSource ID=\"reconcileDataSource\" runat=\"server\"
ConnectionString=\"<%$ ConnectionStrings:ConnectionString %>\"
OnUpdating=\"reconcileGrid_Updating\"
SelectCommand=\"GetReconcileItems\" SelectCommandType=\"StoredProcedure\"
UpdateCommand=\"UPDATE item SET Stat = @Status WHERE ItemID = @ID\">
<UpdateParameters>
<asp:Parameter Name=\"ID\" />
<asp:Parameter Name=\"TransType\" Type=\"String\" />
<asp:Parameter Name=\"LocationID\" Type=\"String\" />
<asp:Parameter Name=\"Description\" Type=\"String\" />
<asp:Parameter Name=\"Status\" Type=\"String\" />
<asp:Parameter Name=\"TransferLocation\" Type=\"String\" />
</UpdateParameters>
</asp:SqlDataSource>
C#代码
protected void reconcileGrid_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
DropDownList ddlReconcileStatus = (DropDownList)reconcileGrid.Rows[reconcileGrid.EditIndex].Cells[0].FindControl(\"ddlReconcileStatus\");
DropDownList ddlTransferLocation = (DropDownList)reconcileGrid.Rows[reconcileGrid.EditIndex].Cells[0].FindControl(\"ddlTransferLocation\");
// Set the Stat Value
reconcileDataSource.UpdateParameters[\"Status\"].DefaultValue = ddlReconcileStatus.SelectedValue.ToString();
}
网格视图
<asp:UpdatePanel ID=\"reconcileUpdatePanel\" runat=\"server\">
<ContentTemplate>
<asp:GridView ID=\"reconcileGrid\" runat=\"server\" AutoGenerateColumns=\"False\"
DataKeyNames=\"ID\" DataSourceID=\"reconcileDataSource\" >
<Columns>
<asp:CommandField ShowEditButton=\"True\" />
<asp:BoundField DataField=\"Name\" HeaderText=\"Name\" SortExpression=\"Name\" ReadOnly=\"true\" />
<asp:BoundField DataField=\"Description\" HeaderText=\"Description\" SortExpression=\"Description\" ReadOnly=\"true\"/>
<asp:BoundField DataField=\"last_known_location\" HeaderText=\"Last Known Location\" SortExpression=\"last_known_location\" ReadOnly=\"true\" />
<asp:TemplateField HeaderText=\"Status\">
<ItemTemplate>
<asp:Label ID=\"lblStatus\" runat=\"server\" Text=\'<%# evalStatus(Eval(\"Stat\")) %>\'></asp:Label></ItemTemplate><EditItemTemplate>
<asp:DropDownList ID=\"ddlReconcileStatus\" runat=\"server\" OnSelectedIndexChanged=\"ddlReconcileStatus_SelectedIndexChanged\" AutoPostBack=\"true\" >
<asp:ListItem Value=\"3\" Text=\"Allocated\"></asp:ListItem><asp:ListItem Value=\"4\" Text=\"Transferred\"></asp:ListItem></asp:DropDownList></EditItemTemplate></asp:TemplateField><asp:TemplateField HeaderText=\"Transfer Location\">
<EditItemTemplate>
<asp:DropDownList ID=\"ddlTransferLocation\" runat=\"server\"
DataSourceID=\"ddlTransferLocationDataSource\" DataTextField=\"Name\"
DataValueField=\"ID\" Enabled=\"false\" ></asp:DropDownList>
<asp:SqlDataSource
ID=\"ddlTransferLocationDataSource\" runat=\"server\"
ConnectionString=\"<%$ ConnectionStrings:ConnectionString %>\"
SelectCommand=\"SELECT [ID], [Name] FROM [TransferLocation]\">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
没有找到相关结果
已邀请:
1 个回复
捕暑句簿姓
而您的参数集合包含六个参数:
实际上,问题在于您要在
事件中传递参数,但必须在
更新事件中传递这些参数。