2015-06-13 3 views
0

Я хочу удалить ТОЛЬКО дочерние элементы, выбранные в datagridview с LINQ to SQL, и это не работает. Я не знаю, можно ли это сделать. Я не знаю, как действовать, можете ли вы проверить мой код и рассказать мне, что я делаю неправильно? Вот мой код:Удалить ТОЛЬКО детей с LINQ to SQL?

private void cmdSupprimer_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     var catAct = (from catA in tbCategories.Categories 
           where catA.CategorieID == (int)dgCategories.Rows[0].Cells[0].Value  
           select catA).Single(); 

     for (int i = 0; i < catAct.Jeuxes.Count(); i++) 
     { 
      for (int j = 0; j < catAct.Jeuxes[i].Personnages.Count(); j++) 
      { 
       tbPersos.Personnages.DeleteOnSubmit(catAct.Jeuxes[i].Personnages[j]); 
      } 
      tbJeux.Jeuxes.DeleteOnSubmit(catAct.Jeuxes[i]); 
     } 
     tbCategories.Categories.DeleteOnSubmit(catAct); 

     tbCategories.SubmitChanges(); 

     dgCategories.DataSource = null; 
     dgCategories.DataSource = (from cats in tbCategories.Categories 
            select new CategorieDisplay() 
            { 
             CategoryID = cats.CategorieID, 
             CategoryNom = cats.CategorieNom 
            }).ToList(); 

     MessageBox.Show("Les enfants de cette catégorie ont été supprimés"); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 
+0

начало моего кода в описании в верхней части страницы –

+0

«не работает», так, что * делает * это сделать? –

+0

У меня есть ошибка в отношении недействительного перевода в строке: где catA.CategorieID == (int) dgCategories.Rows [0] .Cells [0] .Value –

ответ

0

Сделайте свой источник данных переменной называется данных. Затем вы можете удалять строки из данных, а также обновлять datagridview.

var data = (from cats in tbCategories.Categories 
            select new CategorieDisplay() 
            { 
             CategoryID = cats.CategorieID, 
             CategoryNom = cats.CategorieNom 
            }).ToList(); 

dgCategories.DataSource = data; 
​ 
+0

Мне нужно разместить этот код до моего MessageBox.Показать или после начала моей попытки? –

+0

Заменить текущий код. Номер строки в DataGridView и массив данных совпадают. Поэтому, если вы хотите удалить строку 4 DGV, тогда удалите строку 4 из данных. – jdweng

Смежные вопросы