作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 OracleDependency 时遇到一些问题。
我已经阅读了 msdn 和 oracle 上的文档并复制了一些代码来尝试。
但是这不起作用,当插入完成时事件 on_my_event 不会触发。
有人知道为什么吗?
我的用户对数据库具有 CHANGE NOTIFICATION 权限。 Oracle 服务器是 11.2.0.3.0。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
string connection_string = "Data Source=My_srv;User Id=My_usr;Password=My_pwd;";
OracleConnection connection = null;
OracleDependency dependency = null;
OracleCommand my_select = null;
OracleCommand my_insert = null;
public Form1()
{
InitializeComponent();
}
private void TB_insert_event(object sender, EventArgs e)
{
if (TB_insert.Text == "Name of your insert")
TB_insert.Clear();
}
private void insert(object sender, EventArgs e)
{
connection = new OracleConnection(connection_string);
my_insert = connection.CreateCommand();
my_insert.CommandText = "INSERT INTO USR_DEV_TRUNK.WPARAM (wpa_codeparam) VALUES ('" + TB_insert.Text + "')";
connection.Open();
my_insert.ExecuteNonQuery();
connection.Close();
}
private void Set_dep(object sender, EventArgs e)
{
OracleDependency.Port = 3048;
connection = new OracleConnection(connection_string);
connection.Open();
my_select = connection.CreateCommand();
my_select.CommandText = "SELECT wpa_codeparam FROM USR_DEV_TRUNK.WPARAM";
dependency = new OracleDependency();
dependency.AddCommandDependency(my_select);
my_select.Notification.IsNotifiedOnce = false;
my_select.ExecuteNonQuery();
dependency.OnChange += new OnChangeEventHandler(on_my_event);
TB_dependency.Text = "The dependency is set, do your insert to see if it works";
connection.Close();
}
public void on_my_event(object obj, OracleNotificationEventArgs arg)
{
TB_dependency.Text = "Yay ! It worked !";
}
}
}
我有两个按钮:
一个设置我的依赖(函数(点击):Set_dep)
一个做我的插入(功能(点击):插入)
我有两个文本框:
一个得到我的插入(名称:TB_insert)
一个显示依赖状态(名称:TB_dependency)
最佳答案
您确定端口 3048 上的数据包没有被防火墙阻止吗?
此外,一旦设置了依赖项,您是否可以通过查询 USER_CHANGE_NOTIFICATION_REGS/DBA_CHANGE_NOTIFICATION_REGS View 来查看它?
关于c# - Oracledependency 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841901/
我有一个到 ORACLE 10.2 数据库的 Oracle 连接,想监听一个表的变化。连接的用户被授予权限“CHANGE NOTIFICATION”。 Listening是用下面的方法初始化的: pr
我在使用 OracleDependency 时遇到一些问题。 我已经阅读了 msdn 和 oracle 上的文档并复制了一些代码来尝试。 但是这不起作用,当插入完成时事件 on_my_event 不会
我是一名优秀的程序员,十分优秀!