2017-02-10 27 views
0

這一定很簡單,但我找不到答案。數據綁定時最後一行被替換

因此,我創建一個數據表,填充一些值,我添加一個新的行,綁定數據,它顯示完美。但是,當我嘗試添加第二行(手動)它將替換第一個而不是將新行添加到數據表。

private DataTable dtProd = new DataTable(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
      dtProd.Columns.Add("Des"); 
      dtProd.Columns.Add("Quant"); 

      dtProd.Rows.Add("Lixivia", "10"); 
      dtProd.Rows.Add("Bolachas", "5"); 
      dtProd.Rows.Add("Papel", "15"); 

      GridView1.DataSource = dtProd; 
      GridView1.DataBind(); 
     } 

    protected void BTNAdd_Click(object sender, EventArgs e) 
    { 
     dtProd.Rows.Add(TBDes.Text, TBQuant.Text); 
     TBDes.Text = ""; 
     TBQuant.Text = "0"; 
     GridView1.DataBind(); 
     TBDes.Focus(); 
    } 

回答

0

對於添加行到一個DataTable,你應該使用NewRow()方法:

DataRow dtr = dtProd.NewRow(); 
dtr["Des"] = TBDes.Text; 
dtr["Quant"] = TBQuant.Text; 
dtr.Rows.Add(dtr); 

您可以查看MSDN此:https://msdn.microsoft.com/en-us/library/5ycd1034.aspx

+0

它確實exactelly同樣的事情,我的代碼,但其主要在使用數據適配器或數據集時使用。所以結果是不一樣的。 –

+0

@JoãoPedroSousa這當然是將行添加到DataTable的方式。我懷疑你的網格數據源沒有被刷新,這是問題 – NicoRiff

+0

如果它沒有被刷新,我怎麼能看到我剛添加的最後一行?據我所知,刷新正在導致數據丟失 –

相關問題