问题描述
我需要在 C# 中创建一个 Windows 服务,该服务将从 Oracle 数据库中获取插入的值并将它们转换为 XML。
我的服务将保持活动状态并检测插入到不同表中的数据。我需要获取这些值并将它们存储在一个对象中。
我已经测试了数据更改通知 (DCN),它工作正常,但我只收到通知,无法获取插入的值。
如果您需要任何代码,请告诉我。
谢谢。
LE: 我已经使用 HR 模式测试了 DCN。 下面是 C# 代码:
public Form1()
{
InitializeComponent();
OracleConnection con = new OracleConnection(constr);
OracleCommand cmd = new OracleCommand(sql,con);
con.open();
cmd.AddRowid = true;
OracleDependency dep = new OracleDependency(cmd);
cmd.Notification.IsNotifiedOnce = false;
dep.OnChange += new OnChangeEventHandler(OnMyNotificaton);
OracleDataAdapter da = new OracleDataAdapter(cmd);
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
da.Fill(ds,tablename);
dataGrid1.SetDataBinding(ds,tablename);
Show();
Refresh();
}
public static void OnMyNotificaton(object src,OracleNotificationEventArgs args)
{
MessageBox.Show("Result set has changed.","Notification Alert",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
另外,这是用于测试的插入语句:
update employees set salary=salary+10 where employee_id=100 or employee_id=101;
commit;
使用上面的代码,当数据库中插入一行时,我会收到通知。但我想从插入的行中获取值并将它们放入一个对象中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)