如果列名称" 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();
}
答案 0 :(得分: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();
}