我的理解是OracleDependency可以绑定到监视查询(而不仅仅是一个表)。我做了2个命令对象和2个依赖项对象,但是这两个查询都有不同的where子句,所以他们应该查看这个表的2个不同的子集。C#OracleDependency OnChange多次触发
我将这两个依赖项对象分配给同一个回调。我的期望是,当我在表格中更改某些依赖项对象正在观察的OnChange事件时会触发该事件。然后,我将能够做到以下几点的OnChange事件得到触发德更改查询:
OracleDependency OraDep = (OracleDependency)sender; string sql = (string)OraDep.RegisteredResources[0];
所以我设置2个查询相同的表有不同的where子句值。然后我进入数据库并更改其中一个,但令我惊讶的是OnChange甚至激发了两次,上面的代码使查询显示了两个查询。
有没有办法具有依赖关系为特定的查询,而不是整个表?我以为我读了一个地方,你设置了一个特定的查询,where子句和所有。
我想我有一个问题,然后。在这个变化事件中,我需要知道发生了什么变化。似乎没有任何东西可以让我看到这些信息。这看起来很奇怪,因为我看过的例子在cmd上有一个where子句,但是我可以看到似乎并不是这种情况,但是这仍然让我需要知道从我的C#应用程序中更改了哪些内容。 – user441521 2011-05-16 19:55:14
让我澄清一下“什么改变”的含义。我的意思是改变的记录(当msg类型更新时),而不仅仅是哪个表发生了变化(因为我知道,自从我设置cmd后)。 – user441521 2011-05-16 19:56:23
@ user441521由于您只对更新感兴趣,在事件处理函数中,你可以有if条件if(e.info.ToString()==“Update”){Process}否则忽略。 – 2011-05-16 20:22:48