Gridview 更新了整个表,而不是一行,在我给它 ID 后,我收到错误"必须声明标量变量"@IDDjelatnik"



在代码隐藏中,我只有SqlDataSource1.Insert((,它用于将文本从表格向下插入网格视图。我试图编辑,但在我编辑一行后,它适用于整个表,但是在我添加 ID 以更新命令后,我收到我需要声明标量变量@IDDjelatnik的错误。我正在使用网络表单

<asp:Content ID="content1" runat="server" ContentPlaceHolderID="content">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="IDDjelatnik" DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="Black" AllowPaging="True" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellSpacing="2" Width="1105px">
<Columns>
<%--<asp:BoundField DataField="ImeTima" HeaderText="ImeTima" SortExpression="ImeTima" />--%>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="ImePrezime" HeaderText="ImePrezime" SortExpression="ImePrezime" />
<asp:BoundField DataField="TipDjelatnika" HeaderText="TipDjelatnika" SortExpression="TipDjelatnika" />
<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label Text='<%# Bind("ImeTima") %>' ID="lbImeTima" runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropImeTima" runat="server" DataSourceID="SqlDataSource2" DataTextField="ImeTima" DataValueField="IDTim" SelectedValue='<%# Bind("TimID") %>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#CCCCCC" ForeColor="White" HorizontalAlign="Left" />
<RowStyle BackColor="White" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#808080" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
InsertCommand="INSERT INTO [Djelatnik] ([ImePrezime], [TipDjelatnika], [Email], [TimID]) VALUES (@ImePrezime, @TipDjelatnika, @Email, @TimID)" OldValuesParameterFormatString="original_{0}"
SelectCommand="select IDDjelatnik,ImePrezime, TipDjelatnika, Email,TimID, Tim.ImeTima as ImeTima from Djelatnik inner join Tim on Tim.IDTim = Djelatnik.TimID"
UpdateCommand="update Djelatnik set IDDjelatnik = @IDDjelatnik, ImePrezime = @ImePrezime, TipDjelatnika = @TipDjelatnika, Email = @Email,TimID = @TimID">
<InsertParameters>
<asp:Parameter Name="IDDjelatnik" Type="Int32"/>
<asp:ControlParameter Name="ImePrezime" Type="String" ControlID="txtImePrezime" />
<asp:ControlParameter Name="TipDjelatnika" Type="String" ControlID="txtTipDjelatnika" />
<asp:ControlParameter Name="Email" Type="String" ControlID="txtEmail" />
<asp:ControlParameter Name="TimID" Type="Int32" ControlID="txtImeTima" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="IDDjelatnik" Type="int32" />
<asp:Parameter Name="ImePrezime" Type="String" />
<asp:Parameter Name="TipDjelatnika" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="TimID" Type="Int32" />   
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="select ImeTima,IDTim from Tim"></asp:SqlDataSource>
</div>
<table CssClass="table table-light">
<tr>
<td>
<asp:Label Text="Ime Prezime: " runat="server"/>
<asp:TextBox ID="txtImePrezime" runat="server"></asp:TextBox>
</td>
<td>
<asp:Label Text="Tip Djelatnika: " runat="server" />
<asp:TextBox ID="txtTipDjelatnika" runat="server"></asp:TextBox>
</td>
<td>
<asp:Label Text="Email: " runat="server" />
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
</td>
<td>
<asp:Label Text="Tim: " runat="server" />
<asp:TextBox runat="server" ID="txtImeTima"></asp:TextBox>
</td>
<td>
<asp:Button Text="Dodaj" ID="btnDodaj" OnClick="btnDodaj_Click" runat="server" CssClass="btn btn-primary" />
</td>
</tr>
</table>

在 UpdateParameters 中,您需要声明您的 id 字段@IDDjelatnik

最新更新