C# 如何避免此代码出现“超出打开光标限制”错误?
这个循环运行了3000多次 在一个查询中获取所有行,并循环代码中的结果集,而不是打开游标并终止数据库。在一个查询中获取所有行,并循环代码中的结果集,而不是打开游标并终止数据库。我想使用查询结果进一步获取。@laksh-请发布填写完整的代码并准确解释您试图执行的操作编辑您的问题并向其添加详细信息。我想使用查询结果进一步获取。@laksh-请发布完整的代码并准确解释您试图执行的操作编辑您的问题并向其添加详细信息。请向我们展示真实的代码。您是否每次都在循环中创建一个新语句而不关闭它?无论ExecSQLAndGetFirstInt在做什么,它都应该关闭用于检索数据的读取器。@一个名为“否”的“马”会关闭读取器。关闭读取器是否意味着光标已关闭?您的代码已打开,请向我们展示真正的代码。您是否每次都在循环中创建一个新语句而不关闭它?无论ExecSQLAndGetFirstInt在做什么,它都应该关闭用于检索数据的读取器。@a_horse_,带有_no_名称-是,它关闭读取器。关闭读取器是否意味着光标已关闭?您的代码可以打开C# 如何避免此代码出现“超出打开光标限制”错误?,c#,sql,oracle,ado.net,plsql,C#,Sql,Oracle,Ado.net,Plsql,这个循环运行了3000多次 在一个查询中获取所有行,并循环代码中的结果集,而不是打开游标并终止数据库。在一个查询中获取所有行,并循环代码中的结果集,而不是打开游标并终止数据库。我想使用查询结果进一步获取。@laksh-请发布填写完整的代码并准确解释您试图执行的操作编辑您的问题并向其添加详细信息。我想使用查询结果进一步获取。@laksh-请发布完整的代码并准确解释您试图执行的操作编辑您的问题并向其添加详细信息。请向我们展示真实的代码。您是否每次都在循环中创建一个新语句而不关闭它?无论ExecSQL
foreach (string num in ld2.Keys)
{
double state;
int i;
for (i = 0; i < states.Count; i++)
{
cmd = mdb.getCommand("select value V " +
" from TAB_CHART_DATA " +
" where TIMESTAMP = (select max(TIMESTAMP) " +
" from TAB_CHART_DATA " +
" where chart_type= " + chart_type +
" and upper(upper(state)) = '" + states[i] + "' " +
" and CSIS_ID = " + CSISPID +
" and baselinecode like '" + num + "'" +
" ) " +
" and chart_type = " + chart_type +
" and upper(state) = '" + states[i] + "' " +
" and CSIS_ID = " + CSISPID +
" and baselinecode like '" + num + "'"
);
state = mdb.ExecSQLAndGetFirstInt(cmd);
}
}