C# 从DataGridView和数据库中删除任何行
我想从DataGridView以及数据库中删除所选行。我的代码只适用于第一行,对于其他每一行,它都会给出异常“索引超出范围”C# 从DataGridView和数据库中删除任何行,c#,winforms,datagridview,delete-row,C#,Winforms,Datagridview,Delete Row,我想从DataGridView以及数据库中删除所选行。我的代码只适用于第一行,对于其他每一行,它都会给出异常“索引超出范围” 也许你可以试试sqldatasource。例如: <asp:SqlDataSource ID="sdsJur" runat="server" ConnectionString="<%$ ConnectionStrings:NilaiConnectionString %>" DeleteCommand="DE
也许你可以试试sqldatasource。例如:
<asp:SqlDataSource ID="sdsJur" runat="server"
ConnectionString="<%$ ConnectionStrings:NilaiConnectionString %>"
DeleteCommand="DELETE FROM [Jurusan] WHERE [Kd_Jurusan] = @Kd_Jurusan"
InsertCommand="INSERT INTO [Jurusan] ([Jurusan]) VALUES (@Jurusan)"
SelectCommand="SELECT * FROM [Jurusan]"
UpdateCommand="UPDATE [Jurusan] SET [Jurusan] = @Jurusan WHERE [Kd_Jurusan] = @Kd_Jurusan">
<DeleteParameters>
<asp:Parameter Name="Kd_Jurusan" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:FormParameter FormField="tbJurusan" Name="Jurusan" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Jurusan" Type="String" />
<asp:Parameter Name="Kd_Jurusan" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>`
<asp:GridView ID="gvJurusan" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Kd_Jurusan"DataSourceID="sdsJur">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="Kd_Jurusan" HeaderText="Kd_Jurusan" InsertVisible="False" ReadOnly="True" SortExpression="Kd_Jurusan" />
<asp:BoundField DataField="Jurusan" HeaderText="Jurusan" SortExpression="Jurusan" />
</Columns>
</asp:GridView>`
`
然后你可以使用Gridview(我认为类似于datagrigview)。例如:
<asp:SqlDataSource ID="sdsJur" runat="server"
ConnectionString="<%$ ConnectionStrings:NilaiConnectionString %>"
DeleteCommand="DELETE FROM [Jurusan] WHERE [Kd_Jurusan] = @Kd_Jurusan"
InsertCommand="INSERT INTO [Jurusan] ([Jurusan]) VALUES (@Jurusan)"
SelectCommand="SELECT * FROM [Jurusan]"
UpdateCommand="UPDATE [Jurusan] SET [Jurusan] = @Jurusan WHERE [Kd_Jurusan] = @Kd_Jurusan">
<DeleteParameters>
<asp:Parameter Name="Kd_Jurusan" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:FormParameter FormField="tbJurusan" Name="Jurusan" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Jurusan" Type="String" />
<asp:Parameter Name="Kd_Jurusan" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>`
<asp:GridView ID="gvJurusan" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Kd_Jurusan"DataSourceID="sdsJur">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="Kd_Jurusan" HeaderText="Kd_Jurusan" InsertVisible="False" ReadOnly="True" SortExpression="Kd_Jurusan" />
<asp:BoundField DataField="Jurusan" HeaderText="Jurusan" SortExpression="Jurusan" />
</Columns>
</asp:GridView>`
`
希望它有用看起来您在获取DataGridRow的值之前删除了它
dgPartyDetails.Rows.RemoveAt(selectedrowindex);
itemId = Convert.ToString(selectedRow.Cells[0].Value);
颠倒这些陈述的顺序可以解决你的问题
itemId = Convert.ToString(selectedRow.Cells[0].Value);
dgPartyDetails.Rows.RemoveAt(selectedrowindex);
共享aspx代码,您在哪种情况下编写上述代码?它适用于Windows窗体,而不是aspx。我已经在按钮点击事件上写下了您收到的异常情况是什么?如果有…请尝试
dgPartyDetails.CurrentCell.RowIndex代码>它不适用于asp.net。我是在windows窗体中使用C#实现的!它是“DataGridView”,而不是“GridView”。无论如何,谢谢你!:)