2013-04-05 1 views
5

DataTableを作成してから、それに数行を追加しようとしています。ここに私のコードです:私はプログラムをステップ実行すると、drが正常に初期化し、値が移入が、その後ImportRow(dr)後、dt内の行の数はまだ私は何かが欠けする必要がありますように私は感じて0です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); 

     } 
    } 
} 

明らかです。ここで何がうまくいかないの?

答えて

6

このコードを試してみてください。

dt.Rows.Add(dr)

+6

しかし、なぜですか? 'ImportRow'はそのように聞こえるように聞こえます。 – niaher

+1

ImportRowは、別のDataTableのRowsコレクションに既に属しているDataRowを取得し、別のDataTableに持ち込みます。 –

1

ITSはあなた

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は自動的に失敗します(例外はありません)。それをテーブルに追加する必要があります。その後、他のテーブルにインポートすることができます。

関連する問題