【问题标题】:how to update or add new row in a datatable from another datatable如何从另一个数据表更新或添加数据表中的新行
【发布时间】:2016-05-26 05:46:17
【问题描述】:

如果列名“station”在第一个数据表中匹配,则如何从具有相同列的另一个数据表更新数据表,然后更新其他值。如果“station”列不存在,则添加新行 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();
        }

【问题讨论】:

    标签: asp.net datatables-1.10


    【解决方案1】:

    以下是示例代码,请检查验证。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多