2012-04-13 2 views
1

Я хотел бы удалить всю строку в datatable, которая находится в наборе данных, а затем обновить базу данных с помощью метода Update() из TableAdapter.Удалить все строки из DataTable в DataSet

Вставка прекрасно работает, я полагаю, что вы можете видеть, что я делаю. Я попробовал метод Clear() для datatable, который должен был стереть все строки, но в данный момент он ничего не делает.

Я хотел бы использовать такой SQL запрос как DELETE * FROM demande;, но я не понимаю, как это сделать

protected void InsertDemande_Click(object sender, EventArgs e) 
{ 
    //TB = textBox 
    //Parsing date (5th row of my dataTable is type date) 
    string[] tabdate = TB_date_demande.Text.Split('/'); 
    DateTime date = new DateTime(int.Parse(tabdate[2]), int.Parse(tabdate[1]), int.Parse(tabdate[0])); 

    //In my dataset "Demande", on my table "Demande", i add a new row type "demande" with all good parameters 
    ds_Demande.Demande.AddDemandeRow(TB_demande_ID.Text, TB_user_ID.Text, TB_nom_fichier.Text, int.Parse(TB_poids_fichier.Text), date); 


    ta_Demande.Update(ds_Demande);//update the database 
    LabelResponse.Text = "Ajout effectué avec succès"; 
    GridViewDemande.DataBind();//refresh gridview 
} 

protected void ClearTable_Click(object sender, EventArgs e) 
{ 
    ds_Demande.Demande.Clear();//doesn't seem to do anything 
    ta_Demande.Update(ds_Demande); 
    GridViewDemande.DataBind(); 
} 
+1

найти здесь: http://escrow.aliexpress.com //stackoverflow.com/questions/955427/delete-all-rows-in-a-datatable –

+0

Спасибо, обработано отлично =) – WizLiz

ответ

3
// Clear all rows of each table. 
ds_Demande.Clear(); 

// alternatively: 
foreach(var row in ds_Demande.Rows) { 
    row.Delete(); 
} 
+0

Я пробовал это, прежде чем спрашивать, тот же результат, ничего не стирается – WizLiz

+0

Цикл всех строк в таблице данных и вызов метода удаления на ряд? –

+0

При использовании Delete вы помечаете строки для удаления. После цикла вызовите DataSet.AcceptChanges(), чтобы завершить удаление. – Soenhay

1
for(int i = 0; i<ds_Demande.Count; i++) 
{ 
    ds_Demande.Rows[i].Delete(); 
} 
+0

похоже, что он начал бесконечный цикл – WizLiz

+0

о, я вижу .. проверьте отредактированный ответ. – hkutluay

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