儘管我試圖理解gridview的刪除方法,但我仍然無法確定如何刪除一行。我使用相同的gridview來顯示4個SQL表。根據選擇哪個表,我進入swich case來更改SQLDataSource的SELECT和DELETE命令。我不確定這是否是最佳做法,但SELECT部分起作用。gridview刪除問題。不能從gridview刪除按鈕中刪除SQL記錄
這是刪除部分,我需要一些幫助。
- 我的思維過程對如何實現我的目標是否正確?
- 我必須有OnRowDeleting =「gv1_RowDeleting」否則它給了我一個 錯誤。這是強制性的嗎?
- 這是什麼與我的代碼不起作用?
.ASPX:
<form id="form1" runat="server">
<div class="listTitle"><% Response.Write(strListTitle); %>
<asp:GridView ID="gv1"
runat="server"
DataKeyNames="id"
CellPadding="2"
AutoGenerateDeleteButton="True"
OnRowDeleting="gv1_RowDeleting"
OnRowDeleted="gv1_deleteItem">
</asp:GridView>
</div>
</form>
</div> <!-- close middle -->
<div id="footer">
<asp:SqlDataSource ID="DS" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>">
<DeleteParameters> <asp:Parameter Name="id"/> </DeleteParameters>
</asp:SqlDataSource>
</div>
.CS文件:
switch (strType)
{
case "servers":
DS.SelectCommand = "SELECT * FROM tbServers";
DS.DeleteCommand = "DELETE FROM tbServers WHERE id = @id";
strListTitle = "Server List";
break;
case "systems":
DS.SelectCommand = "SELECT * FROM tbSystems";
DS.DeleteCommand = "DELETE FROM tbSystems WHERE id = @id";
strListTitle = "System List";
break;
case "itOwners":
DS.SelectCommand = "SELECT * FROM tbITowners";
DS.DeleteCommand = "DELETE FROM tbITowners WHERE id = @id";
strListTitle = "IT Owner List";
break;
case "systemOwners":
DS.SelectCommand = "SELECT tbSystemOwners.id, tbITowners.owner, tbSystems.Systems FROM tbITowners INNER JOIN tbSystemOwners ON tbITowners.id = tbSystemOwners.idITowners INNER JOIN tbSystems ON tbSystemOwners.idSytems = tbSystems.id";
DS.DeleteCommand = "DELETE FROM tbSystemOwners WHERE id = @id";
strListTitle = "System Owner List";
break;
default:
break;
}
gv1.DataSource = DS;
gv1.DataBind();
}
protected void gv1_deleteItem(object sender, GridViewDeletedEventArgs e)
{
// Display whether the delete operation succeeded.
if (e.Exception == null)
{
Response.Write("Row deleted successfully.");
}
else
{
Response.Write("An error occurred while attempting to delete the row.");
e.ExceptionHandled = true;
}
}
protected void gv1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
#2是................. –