Для этого вы сначала задали идентификатор первичного ключа в своей таблице, который выбираете в качестве источника таблицы.
После привязки сетки вы должны сохранить этот идентификатор в скрытом поле. см. код ниже:
<asp:GridView ID="gvwID" runat="server" AutoGenerateColumns="False"
DataKeyNames="TableID">
<Columns>
<asp:TemplateField>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("TableID") %>'/>
<asp:TemplateField>
</Columns>
</asp:GridView>
Затем в событии нажатия кнопки удаления получить идентификаторы выбранной строки:
protected void Btn_Click(object sender, EventArgs e)
{
int[] OrderIDList = new int[gvwID.Rows.Count];
int index = 0;
for (int count = 0; count < gvwID.Rows.Count; count++)
{
if (gvwID.Rows[count].FindControl("chkSelect") != null)
{
if (((CheckBox)gvwID.Rows[count].FindControl("chkSelect")).Checked)
{
if (gvwID.Rows[count].FindControl("HiddenField1") != null)
{
string OrderID = ((HiddenField)gvwID.Rows[count].FindControl("HiddenField1")).Value;
OrderIDList[index++] = Convret.ToInt32(OrderID);
}
}
}
}
Затем создайте добавленную строку из OrderIDList и передайте ее хранимой процедуре. из хранимой процедуры создайте xml, используя добавленную строку. Прокрутите xml, получите каждый идентификатор и выполните удаление.
см. Процедуру ниже:
@IDList varchar(MAX)
DECLARE @xmlUserIDs xml
SELECT @xmlUserIDs = CONVERT(xml,'<root><cat>' + REPLACE(@IDList,',','</cat><cat>') + '</cat></root>')// creates xml from appended string
DELETE FROM
[TableName]
WHERE
[TableID] IN (SELECT
[Value] = T.C.value('.','int')
FROM
@xmlUserIDs.nodes('/root/cat') T(C));
Надеюсь, это поможет вам ..