首页 > 解决方案 > 从 Oracle 数据库中检索插入的数据

问题描述

我需要在 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;

使用上面的代码,当数据库中插入一行时,我会收到通知。但我想从插入的行中获取值并将它们放入一个对象中。

标签: c#.netoracleodp.net

解决方案


推荐阅读