2013-04-05 10 views
5

Sto provando a creare un DataTable e quindi aggiungere un paio di righe ad esso. Qui è il mio codice:DataTable.ImportRow non aggiunge righe

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

     } 
    } 
} 

Quando faccio un passo attraverso il programma, dr viene inizializzato con successo e popolata con i valori, ma poi, dopo ImportRow(dr), il conteggio delle righe in dt è ancora 0. Mi sento come se devo essere perso qualcosa ovvio. Cosa c'è che non va qui?

risposta

6

Prova di questo codice:

dt.Rows.Add(dr)

+6

Ma perché? 'ImportRow' sembra dovrebbe farlo. – niaher

+1

ImportRow acquisisce un DataRow che appartiene già a un'altra raccolta di DataTable's Rows e lo inserisce in un altro DataTable. –

1

La sua può aiutare a

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

Innanzitutto è necessario aggiungere la riga:

dt.Rows.Add(dr); 

Quindi è necessario chiamare sotto metodo per commit it:

3

Se la riga è scollegata (così come è quando viene creata per la prima volta) ImportRows fallisce silenziosamente (nessuna eccezione) - per poter importare le righe che si devono aggiungere nella tabella. Successivamente è possibile importarlo in altre tabelle.

Problemi correlati