2016-05-26 12 views
0

列名「ステーション」が最初のデータテーブルに一致し、他の値を更新する場合、同じ列を持つ別のデータテーブルからデータテーブルを更新する方法。その後、以下の新しい行のdatatable1を追加し、datatable2別のデータテーブルからデータテーブル内の新しい行を更新または追加する方法

 DataSet ds = new DataSet(); 
     DataSet ds1 = new DataSet(); 

     ds1.ReadXml(HttpContext.Current.Server.MapPath("XML/myFile.xml")); 
     DataTable dt1 = ds1.Tables[0]; 


     //dt1.Merge(dt); 
     //dt1.AcceptChanges(); 

     //DataView dw = new DataView(dt); 
     //DataTable dt2 = dw.ToTable(true, "DateTime", "Station", "Max_Temp", "Min_Temp", "Weather_Detail"); 


     for (int i = 0; i <= dt.Rows.Count; i++) 
     { 
      for (int j = 0; j <= dt1.Rows.Count; j++) 
      //{ 
       if (dt1.Rows[i]["Station"].ToString().Contains(dt.Rows[i]["Station"].ToString())) 
       { 
        //&& dt1.Rows[i]["Max_Temp"].ToString() == dt.Rows[j]["Max_Temp"].ToString() && dt1.Rows[i]["Station"].ToString() == dt.Rows[j]["Station"].ToString()) 

        dt1.Rows[i]["Max_Temp"] = dt.Rows[i]["Max_Temp"]; 
        dt1.Rows[i]["Min_Temp"] = dt.Rows[i]["Min_Temp"]; 

        dt1.Rows[i]["Weather_Detail"] = dt.Rows[i]["Weather_Detail"]; 
        dt1.Rows[i]["DateTime"] = dt.Rows[i]["DateTime"]; 

       } 
       else 
       { 
        DataRow dr = null; 


        dr = dt1.NewRow(); 
        dt1.Rows.Add(dr); 
        dt1.Rows[i]["Station"]= dt.Rows[i]["Station"].ToString(); 
        dt1.Rows[i]["Max_Temp"] = dt.Rows[i]["Max_Temp"]; 
        dt1.Rows[i]["Min_Temp"] = dt.Rows[i]["Min_Temp"]; 

        dt1.Rows[i]["Weather_Detail"] = dt.Rows[i]["Weather_Detail"]; 
        dt1.Rows[i]["DateTime"] = dt.Rows[i]["DateTime"]; 

       } 
      } 
      dt1.AcceptChanges(); 
     } 

答えて

0

からデータをコピー存在することは、サンプルコードをチェックし、確認してくださいです。

 DataSet ds = new DataSet(); 
     DataSet ds1 = new DataSet(); 

     ds.ReadXml(HttpContext.Current.Server.MapPath("XMLFile1.xml")); 
     DataTable dt1 = ds.Tables[0]; 

     for (int i = 0; i < dt.Rows.Count; i++) 
     {     
       if (dt1.Rows[i]["Station"].ToString().Contains(dt.Rows[i]["Station"].ToString())) 
       { 
        dt1.Rows[i]["Max_Temp"] = dt.Rows[i]["Max_Temp"]; 
        dt1.Rows[i]["Min_Temp"] = dt.Rows[i]["Min_Temp"]; 

        dt1.Rows[i]["Weather_Detail"] = dt.Rows[i]["Weather_Detail"]; 
        dt1.Rows[i]["DateTime"] = dt.Rows[i]["DateTime"]; 
       } 
       else 
       { 
        DataRow dr; 
        dr = dt1.NewRow(); 
        dr["Station"] = dt.Rows[i]["Station"].ToString(); 
        dr["Max_Temp"] = dt.Rows[i]["Max_Temp"]; 
        dr["Min_Temp"] = dt.Rows[i]["Min_Temp"]; 
        dr["Weather_Detail"] = dt.Rows[i]["Weather_Detail"]; 
        dr["DateTime"] = dt.Rows[i]["DateTime"]; 
        dt1.Rows.Add(dr); 

      } 
      dt1.AcceptChanges(); 

     } 
関連する問題