2013-04-05 17 views
5

Ben bir DataTable yapmaya çalışıyorum ve sonra bir çift satırlar ekleyin. İşte benim kod: Ben programı aracılığıyla adım attığınızda, dr başarıyla başlatıldı ve değerlerle doldurulur, ama sonra ImportRow(dr) sonra dt satır sayısı hala bir şey eksik olmalı gibi hissediyorum 0'dır edilirDataTable.ImportRow satır ekliyor

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

     } 
    } 
} 

açık. Burada neyin yanlış gidiyor? size yönteminin altında Sonra

dt.Rows.Add(dr); 

aramalıdır:

dt.Rows.Add(dr)

cevap

6

bu kodu deneyin taahhüt et:

dt.AcceptChanges(); 
+6

Ama neden? ImportRow, bunu yapması gerektiği gibi geliyor. – niaher

+1

ImportRow, başka bir DataTable'ın Satır koleksiyonuna ait olan DataRow'unu alır ve başka bir DataTable'a getirir. –

1

Onun

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

Sen satır eklemek için ilk ihtiyaç Mayıs Yardım:

3

Satır ayrılmışsa (ilk oluşturulduğu sırada olduğu gibi) ImportRows sessizce başarısız (istisna yok) - tabloya eklemek zorunda olduğunuz satırları alabilmek için. Daha sonra diğer tablolara alabilirsiniz.