我有2个DataTable,Table1和Table2,
我想实现当我改变Table1里面的一个数据的时候,
通知Table2,Table2会自动根据Table1里面的变化而变化Table2里面的数据的一个数据,
注意:是改变一个数据,而不是成批的更新。
大家有什么办法吗?我想实现的其实就像Excel一样的功能,当Sheet1里面的一个数值改变的时候,
我可以让Sheet2里面的对应的某个数值发生改变,在Excel里面是通过设置公式来实现的,DataTable是否能大致实现这种思路,望高手支招。
我想实现当我改变Table1里面的一个数据的时候,
通知Table2,Table2会自动根据Table1里面的变化而变化Table2里面的数据的一个数据,
注意:是改变一个数据,而不是成批的更新。
大家有什么办法吗?我想实现的其实就像Excel一样的功能,当Sheet1里面的一个数值改变的时候,
我可以让Sheet2里面的对应的某个数值发生改变,在Excel里面是通过设置公式来实现的,DataTable是否能大致实现这种思路,望高手支招。
using System;
using System.Data;
public class test
{
DataTable dt1, dt2;
public test()
{
dt1 = new DataTable();
dt2 = new DataTable();
dt1.Columns.Add("ID");
dt1.Columns.Add("AA");
dt1.Columns.Add("BB");
dt2.Columns.Add("ID");
dt2.Columns.Add("AA");
dt2.Columns.Add("BB");
dt1.Rows.Add(new object[] { "1", "Row1_1", "Row1_2" });
dt1.Rows.Add(new object[] { "2", "Row2_1", "Row2_2" });
dt2.Rows.Add(new object[] { "1", "Row1_1", "Row1_2" });
dt2.Rows.Add(new object[] { "2", "Row2_1", "Row2_2" });
dt1.RowChanged += new DataRowChangeEventHandler(dt1_RowChanged);//绑定事件,
MessageBox.Show("dt2行1列AA的值:" + dt2.Rows[0]["AA"].ToString());
dt1.Rows[0]["AA"] = "ChangeValue";//更改值后会触发dt1_RowChanged,同时更新数据相同的行
} void dt1_RowChanged(object sender, DataRowChangeEventArgs e)
{
DataRow dr1 = e.Row;
DataRow dr2 = null;
foreach (DataRow d in dt2.Rows)
{
if (d["ID"].ToString() == dr1["ID"].ToString())//通过ID找到同一行
{
dr2 = d;
break;
}
}
if (dr2 == null) return;//找不到行
//更新行
for (int i = 1; i<dt2.Columns.Count; i++)
dr2[i] = dr1[i];
MessageBox.Show("dt2行1列AA的值:" + dt2.Rows[0]["AA"].ToString());
}
public static void Main(string []Args)
{
test t=new test();
}
}
然后进行判断来更新Table2
并且他们ID的是不同的,我说一下我的场景吧,
Table1里面记录了原始的货币对,比如
Symbol Mid
USDHKD 10
USDJPY 2
NZDCNY 0.5而Table2里面那是这样的,
HKDJPY 5 //我来解释一下5是怎么来的,是USDHKD/USDJPY=10/2 而来
CNYNZD 2 //我来解释一下2是怎么来的,是1/NZDCNY=1/0.5而来。每当Table里面的数据发生变化,我要导致Table里面相应的有关系的数据发生变化。
请大家继续。
谢谢“iloveC#”的代码,很有启发。
能否像Excel一样实现定义公式那
请24K纯爷们,纯的!!!!!!说明一下详细的步骤。
请成长说明一下如何可以像Excel一样,我能够设置DataCoulume公式,但是DataRow怎么设置那。
再次谢谢大家。请继续。
iloveC#.net类无法和Excel无法比,我就是想知道有没有办法(小技巧也可以)能够大致的实现这个功能,
如果不能,那我只能是If判断了。加上改变Tabel1和Table2的结构,加各种标识来判断出来。然后用的你方法来更新Tabel2的数据。