c# - 从 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;
使用上面的代码,当数据库中插入一行时,我会收到通知。但我想从插入的行中获取值并将它们放入一个对象中。
解决方案
推荐阅读
- javascript - 如何通过 id 在对象数组中添加新值(不是新项目)
- python - 如何增加子图的大小并减少水平间距?
- xml - 尝试使用 Powershell 更改 XML 文件中的值
- android - 无法通过检索“数字”从 Firebase 检索数据
- pandas - Geopandas 和 bokeh 从数据中提取 xs 和 ys
- android - Android - 动态更新当前视图
- javascript - 如何修复登录检查?
- javascript - Extjs6中change事件后执行clearicontap怎么办?
- java - LocalDate 正在默默地纠正错误的日期?
- html - 我如何创建一个包含 5 个 PARAGRAPH 元素的 DIV,每个元素包含一个带有 CSS 类属性的 SPAN 和另一个带有 CSS 类值的 SPAN