2012-04-13 60 views
1

我想要清除位於數據集中的數據表中的所有行,然後使用TableAdapterUpdate()方法更新數據庫。從DataSet中的DataTable中刪除所有行

該插入工作正常,我把它,所以你可以看到我在做什麼。我嘗試了數據表的Clear()方法,該數據表應該擦除所有行,但目前它什麼都不做。

我想用一種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://stackoverflow.com/questions/955427/delete-all-rows-in-a-datatable – 2012-04-13 08:59:39

+0

謝謝,工作正常=) – WizLiz 2012-04-13 09:10:15

回答

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

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

我試過之前詢問,結果相同,沒有任何東西被刪除 – WizLiz 2012-04-13 08:55:14

+0

循環數據表中的所有行並調用delete方法行? – 2012-04-13 09:01:22

+0

使用刪除時,您正在標記要刪除的行。循環後,調用DataSet.AcceptChanges()來完成刪除操作。 – Soenhay 2014-02-25 22:23:01

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

看起來像是開始了無限循環 – WizLiz 2012-04-13 09:04:11

+0

哦,我明白了..檢查編輯後的答案。 – hkutluay 2012-04-13 10:12:29