Как удалить строку DataTable без использования циклов? - PullRequest
0 голосов
/ 18 августа 2011

У меня есть одна таблица данных, которая имеет

DataTable:

         SeqNo        ItemID        ItemName
        -------       ------        --------
           1            10           AAA
           2            20           BBB
           3            30           CCC

Теперь я хочу удалить строку, у которой есть SeqNo "3".

Теперь яделает это в GridView RowCommand Event:

    if (e.CommandName == "Delete")
        {
            string SeqNo = e.CommandArgument.ToString();
            for (int i = 0; i < DTItem.Rows.Count; i++)
            {
                if (SeqNo == DTItem.Rows[i]["SeqNo"].ToString())
                {
                    DTItem.Rows.Remove(DTItem.Rows[i]);
                }
            }
        }

Но без циклов, Как удалить строку на основе этого условия?

Ответы [ 4 ]

2 голосов
/ 18 августа 2011

попробуй

DataRow[] rows = DTItem.Select(" SeqNo = " + SeqNo );
rows[0].Delete();
0 голосов
/ 18 августа 2011

Другой вариант - использовать DataView экземпляр.

//Set sort key and order
 DTItem.DefaultView.Sort = "SeqNo";
 DTItem.DefaultView.Delete(DTItem.DefaultView.Find(2));
0 голосов
/ 18 августа 2011

Попробуйте это:

DataRow[] rows = DTItem.Select("SeqNo = " + SeqNo);
foreach (DataRow row in rows) {
    DTItem.Rows.Remove(row);
}
0 голосов
/ 18 августа 2011

Если вы уверены, что существует только одно и однозначно одно вхождение строки, вы можете добиться этого следующим образом:

dt1.Rows.Remove(dt1.Select("SeqNo= 3")[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...