永发信息网

第二次调试程序卡死为什么?OracleDataReader odr = tmpCMD.ExecuteReader();

答案:2  悬赏:30  手机版
解决时间 2021-02-14 06:11
///
/// dep监听表变化
///

private void oracleLisentDep()
{
if (oracleDep == null || !oracleDep.IsEnabled)
{
OracleCommand tmpCMD = new OracleCommand("select * from kkk", oracleConn);
///oracleDep (cmd,是否一次后就移除注册,注册持续多长时间0为永久,True是保存在硬盘False是在内存数据库服务器重启后就丢失了);
oracleDep = new OracleDependency(tmpCMD, true, 0, true);
oracleDep.OnChange += new OnChangeEventHandler(OnNotificaton);
try
{
OracleDataReader odr = tmpCMD.ExecuteReader();// 就是从这句开始死掉!!!!!!
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
}
///
/// 当指定的表发生变化,指定触发的事件
///

private void OnNotificaton(object src, OracleNotificationEventArgs arg)
{
//可以从arg.Details中获得通知的具体信息,比如变化数据的RowId
try
{
DataTable dt = arg.Details;
MessageBox.Show(dt.Columns[0].ToString());
}
catch (Exception ex) { MessageBox.Show("错误信息"+ ex.ToString()); }

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
try
{ //退出程序时清除所有的注册
oracleDep.RemoveRegistration(oracleConn);
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
e.Cancel = false;
}

第一次调试是OK的
最佳答案
你是不是没有释放啊,看看odr可不可以close()掉 或者dispose()掉
全部回答
没看懂什么意思?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
派多格宠物(汶上店)地址有知道的么?有点事想
汽车电瓶被耗干,充电后还可以继续使用吗,急
纽约的别称为什么叫做大苹果?
怎么在10天内把英语成绩提高,就提高,我现在
深蓝水族地址在什么地方,想过去办事
既参加了商业保险又加入了互助保障活动的职工
高密市农民工维权中心地址在哪,我要去那里办
【世界最低点】世界海拔最高点、最低点是哪里
ml yszhy是什么意思
森森水族汶上旗舰店地址在什么地方,想过去办
水多的地方怎么做化粪池
为什么我家的机顶盒弄来弄去还是黑白的,电视
招财水族生活馆地址在哪,我要去那里办事
【把一根底面直径10厘米的圆柱木料沿底面直径
有几大行星?
推荐资讯
世纪龙泉宫沐浴休闲会所在什么地方啊,我要过
我弟弟和伙伴骑摩托车追尾一辆牵引运煤的大货
一开机提示有新语音邮件
我在美国,去牙科诊所,医院说我要先吃药消炎
欧尚娱乐地址在什么地方,想过去办事
为什么水煮菜,水会变黑
【煤矿反风的意义与要求?】
孙立群在《怎样走好人生路》中谈到:“在一个
科学家研究小麦20℃时光合作用强度与光照强度
汤家饭店怎么去啊,有知道地址的么
汽车暖气ac开关off是什么意思?哪个是关哪个
石玉便利店怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?