首页 新闻 搜索 专区 学院

大家看看这个问题(急)

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-01 18:37


public DataTable returnDT(OleDbConnection oledbCon,string sql)
  {  
  try
  {
  OleDbDataAdapter adp = new OleDbDataAdapter(sql, oledbCon);
  DataSet ds = new DataSet();
  adp.Fill(ds); //异常: 试图释放正在使用的 RCW。活动线程或其他线程上正在使用该 RCW。

        //释放正在使用的 RCW 的尝试会导致损坏或数据丢失。
  return ds.Tables[0];  
  }
  catch
  {
  return null;
    
  }
  }

lujiao_cs的主页 lujiao_cs | 初学一级 | 园豆:141
提问于:2011-08-04 10:32
< >
分享
最佳答案
0

此连接上的数据库正在被使用,你的这段代码没有问题啊

收获园豆:4
梅卫军 | 初学一级 |园豆:102 | 2011-08-04 10:37
其他回答(3)
0

OleDbConnection oledbCon这个你在哪定义的,这段代码贴出来看看

收获园豆:4
王清清 | 园豆:281 (菜鸟二级) | 2011-08-04 10:40
OleDbConnection 是由调用方法传入的额......
支持(0) 反对(0) lujiao_cs | 园豆:141 (初学一级) | 2011-08-04 10:43
你的这个传入的连接不是静态的吧?
支持(0) 反对(0) 顾晓北 | 园豆:10787 (专家六级) | 2011-08-04 11:08
0

你的连接 Open() close()  方法在哪哈?

收获园豆:2
杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-04 10:54
写了两个打开关闭连接的方法额
支持(0) 反对(0) lujiao_cs | 园豆:141 (初学一级) | 2011-08-04 10:55
那儿?
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-04 10:57
private void OpenConn()
{
if (oledbConn.State != ConnectionState.Open)
{
oledbConn.Open();
}
}

private void CloseConn()
{
if (oledbConn.State != ConnectionState.Closed)
{
try
{
oledbConn.Close();
}
catch (Exception)
{
}
}
}
支持(0) 反对(0) lujiao_cs | 园豆:141 (初学一级) | 2011-08-04 10:58
OleDbDataAdapter 不是不用自己打开连接么? 用完了自己就关闭了......
支持(0) 反对(0) lujiao_cs | 园豆:141 (初学一级) | 2011-08-04 10:59
OleDbDataAdapter 使用是自己打开,但是不关闭,这个原因和你的代码没有关系。
支持(0) 反对(0) 梅卫军 | 园豆:102 (初学一级) | 2011-08-04 11:00
关键你要查找你的数据库连接字符串有无问题,你想打开的数据库,是否有进程正在使用,我还想问,你使用oledb准备打开什么数据库,能说一下吗
支持(0) 反对(0) 梅卫军 | 园豆:102 (初学一级) | 2011-08-04 11:01
这个方法是由Timer调用的,访问的是Access数据库,是不是大数据量的访问会造成这个问题额??
支持(0) 反对(0) lujiao_cs | 园豆:141 (初学一级) | 2011-08-04 11:08
你断点调试,看是第几次发生异常, OleDbDataAdapter adp = new OleDbDataAdapter(sql, oledbCon);
DataSet ds = new DataSet();
adp.Fill(ds);
在这个地方你调用关闭数据库连接
return ds.Tables[0];
支持(0) 反对(0) 梅卫军 | 园豆:102 (初学一级) | 2011-08-04 11:16
如果第一次没有问题,第二次有问题,说白了就是因为第一次连接正常打开,第二次的时候因为已经打开,所以先关闭吧
支持(0) 反对(0) 梅卫军 | 园豆:102 (初学一级) | 2011-08-04 11:17
还有你在调用的时候,不要自己把Access数据库打开(就是用Access打开数据库)
支持(0) 反对(0) 梅卫军 | 园豆:102 (初学一级) | 2011-08-04 11:18
没反应了?
支持(0) 反对(0) 梅卫军 | 园豆:102 (初学一级) | 2011-08-04 11:32
哈哈
支持(0) 反对(0) 王清清 | 园豆:281 (菜鸟二级) | 2011-08-04 11:42
@梅卫军:谢谢你的答复,我再认真看看额
支持(0) 反对(0) lujiao_cs | 园豆:141 (初学一级) | 2011-08-04 11:46
0

这个问题是并发导致的在调用这个方法的地方加一个lock(this)

CXY_Lin | 园豆:204 (菜鸟二级) | 2014-06-05 09:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册