C# 从gridview中删除行
我有两张桌子,机器组和机器。机器组具有以下列:C# 从gridview中删除行,c#,asp.net,sql-server,visual-studio,C#,Asp.net,Sql Server,Visual Studio,我有两张桌子,机器组和机器。机器组具有以下列: MachinegroupID MachineGroupName MachineGroupDesc MachineGroupID (FK) MachineID MachineName Machinedesc 机器有很多列: MachinegroupID MachineGroupName MachineGroupDesc MachineGroupID (FK) MachineID MachineName Machinedesc 现在我想删除一个
MachinegroupID
MachineGroupName
MachineGroupDesc
MachineGroupID (FK)
MachineID
MachineName
Machinedesc
机器有很多列:
MachinegroupID
MachineGroupName
MachineGroupDesc
MachineGroupID (FK)
MachineID
MachineName
Machinedesc
现在我想删除一个机器组,但不想删除其中包含机器的机器组
DELETE FROM MachineGroups
WHERE MachineGroupID NOT IN (SELECT DISTINCT MachineGroupID FROM Machines)
这将删除gridview中机器数为0的所有行
我想要的是只删除其删除链接被单击的行
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
AutoGenerateColumns="False" CellPadding="1" CellSpacing="2"
DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None"
Width="100%" ondatabound="GridView1_DataBound1"
onrowdatabound="GridView1_RowDataBound1">
<RowStyle BackColor="#D0D8E8" ForeColor="#333333" Height="35px" />
<Columns>
<asp:BoundField DataField="MachineGroupID" HeaderText="MachineGroupID"
InsertVisible="False" ReadOnly="True" SortExpression="MachineGroupID"
Visible="False" />
<asp:BoundField DataField="MachineGroupName" HeaderText="MachineGroupName"
SortExpression="MachineGroupName" />
<asp:BoundField DataField="MachineGroupDesc" HeaderText="MachineGroupDesc"
SortExpression="MachineGroupDesc" />
<asp:BoundField DataField="TimeAdded" HeaderText="TimeAdded"
SortExpression="TimeAdded" />
<asp:TemplateField HeaderText="CanBeDeleted" SortExpression="CanBeDeleted"
Visible="False">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Bind("CanBeDeleted") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Bind("CanBeDeleted") %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="No. of PCs" HeaderText="No. of PCs" ReadOnly="True"
SortExpression="No. of PCs" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>"
SelectCommand="SELECT MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted, COUNT(Machines.MachineName) AS 'No. of PCs' FROM MachineGroups FULL OUTER JOIN Machines ON Machines.MachineGroupID = MachineGroups.MachineGroupID GROUP BY MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted"
DeleteCommand="DELETE FROM MachineGroups
WHERE MachineGroupID NOT IN (SELECT DISTINCT MachineGroupID FROM Machines)">
<DeleteParameters>
<asp:Parameter Name="original_MachineGroupID" />
<asp:Parameter Name="original_MachineGroupName" />
<asp:Parameter Name="original_MachineGroupDesc" />
<asp:Parameter Name="original_CanBeDeleted" />
<asp:Parameter Name="original_TimeAdded" />
</DeleteParameters>
</asp:SqlDataSource>
未测试,但方向应正确:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>"
SelectCommand="SELECT MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted, COUNT(Machines.MachineName) AS 'No. of PCs' FROM MachineGroups FULL OUTER JOIN Machines ON Machines.MachineGroupID = MachineGroups.MachineGroupID GROUP BY MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted"
DeleteCommand="DELETE FROM MachineGroups WHERE MachineGroupID = @MachineGroupID">
<DeleteParameters>
<asp:Parameter Name="MachineGroupID" />
</DeleteParameters>
</asp:SqlDataSource>
未测试,但方向应正确:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>"
SelectCommand="SELECT MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted, COUNT(Machines.MachineName) AS 'No. of PCs' FROM MachineGroups FULL OUTER JOIN Machines ON Machines.MachineGroupID = MachineGroups.MachineGroupID GROUP BY MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted"
DeleteCommand="DELETE FROM MachineGroups WHERE MachineGroupID = @MachineGroupID">
<DeleteParameters>
<asp:Parameter Name="MachineGroupID" />
</DeleteParameters>
</asp:SqlDataSource>
@unknown:您需要学习如何正确格式化XML和代码段!突出显示有问题的行,然后单击编辑工具栏上的“代码”按钮(010 101),或按键盘上的Ctrl-K键-只有这样,代码才会正确显示,并且其他人可以看到代码来回答您的问题!谢谢我记得下一个time@unknown:您需要学习如何正确格式化XML和代码段!突出显示有问题的行,然后单击编辑工具栏上的“代码”按钮(010 101),或按键盘上的Ctrl-K键-只有这样,代码才会正确显示,并且其他人可以看到代码来回答您的问题!谢谢下次我会记得的