2013-04-05 12 views
5

Próbuję utworzyć DataTable, a następnie dodać kilka wierszy do niego. Oto mój kod:DataTable.ImportRow nie dodaje wierszy

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); 

     } 
    } 
} 

Kiedy krok po kroku program, dr pomyślnie zainicjowany i wypełnione wartościami, ale potem po ImportRow(dr), liczba wierszy w dt nadal jest 0. czuję, że musi być brakuje czegoś oczywisty. Co tu jest nie tak?

Odpowiedz

6

Spróbuj kod:

dt.Rows.Add(dr)

+6

Ale dlaczego? 'ImportRow' brzmi, jakby powinien to zrobić. – niaher

+1

ImportRow pobiera DataRow, która już należy do innej kolekcji DataTable Rows i przenosi ją do innej DataTable. –

1

Its mogą pomóc

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

najpierw należy dodać wiersz:

dt.Rows.Add(dr); 

Następnie należy zadzwonić poniżej metody zrób to:

dt.AcceptChanges(); 
3

Jeśli wiersz jest odłączony (jak to jest, gdy jest tworzony po raz pierwszy), funkcja ImportRows nie działa w trybie cichym (bez wyjątku) - aby móc importować wiersze, należy dodać je do tabeli. Następnie możesz zaimportować go do innych tabel.

Powiązane problemy