2013-04-05 50 views
5

我試圖做一個DataTable,然後向它添加幾行。這裏是我的代碼:DataTable.ImportRow沒有添加行

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data; 


namespace thisNamespace 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      DataTable dt=new DataTable(); 
      dt.Columns.Add("XYZID"); 
      DataRow dr=dt.NewRow(); 
      dr["XYZID"]=123; 
      dt.ImportRow(dr); 
      dr["XYZID"] = 604303; 
      dt.ImportRow(dr); 

     } 
    } 
} 

當我通過程序步驟,dr成功初始化和值填充,但隨後ImportRow(dr)後,在dt的行數仍爲0。我覺得我必須失去了一些東西明顯。這裏有什麼問題?

回答

6

試試這個代碼:

dt.Rows.Add(dr)

+6

但是爲什麼? 'ImportRow'聽起來應該是這樣。 – niaher 2015-02-24 13:24:17

+1

ImportRow需要一個已經屬於另一個DataTable的Rows集合的DataRow,並將它帶入另一個DataTable。 – 2017-06-20 20:28:25

1

它可以幫助你

DataTable table = new DataTable(); 
table.Columns.Add("Dosage", typeof(int)); 
    table.Columns.Add("Drug", typeof(string)); 
    table.Columns.Add("Patient", typeof(string)); 
    table.Columns.Add("Date", typeof(DateTime)); 

    // 
    // Here we add five DataRows. 
    // 
    table.Rows.Add(25, "Indocin", "David", DateTime.Now); 
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now); 
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now); 
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now); 
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now); 
0

首先,您需要添加一行:

dt.Rows.Add(dr); 

然後必須調用下面的方法來提交它:

dt.AcceptChanges(); 
3

如果該行被分離(就像它在第一次創建時那樣),ImportRows會自動失敗(沒有例外) - 爲了能夠導入必須將其添加到表中的行。之後,您可以將其導入其他表格。