今天下午搞了一下午“超出打开游标的最大数”这个问题! 在网上找了很久,发现没有一个是好的!那个改什么游标最大值的简直是白痴治标不治本的办法!菜鸟都不用!
搞了半天终于搞明白 是怎么回事!原来是我在逐条读取数据的时候除了异常但是没有关掉就去执行了其他的数据库操作导致超出打开游标的最大数! 出错代码
IDataReader rd = dataSource.ExecuteReader(sql1);
while (rd.Read())
{
if (groups == "")
groups = rd["BUL_GRP_ID"].ToString();
else
groups = groups + "," + rd["BUL_GRP_ID"].ToString();
}
rd.Close();
解决方案:很简单try—catch—finally
IDataReader rd = dataSource.ExecuteReader(sql1);
try
{
while (rd.Read())
{
if (groups == "")
groups = rd["BUL_GRP_ID"].ToString();
else
groups = groups + "," + rd["BUL_GRP_ID"].ToString();
}
}
catch
{ }
finally
{
rd.Close();
}
同时如果你的数据库联接打开后执行有异常也会报这个错误 解决办法也是同样的!finnally中将打开的数据库联接关闭!