【发布时间】:2025-12-27 21:45:15
【问题描述】:
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);
}
}
这个循环运行了 3000 多次。
【问题讨论】:
-
请给我们看真实的代码。您是否可能每次都在循环中创建一个新语句而不是关闭它?
-
无论
ExecSQLAndGetFirstInt在做什么,它都应该关闭它用来检索数据的阅读器。 -
@a_horse_with_no_name- 是的,它关闭了阅读器。
-
关闭阅读器是否意味着关闭光标?
-
您的代码对SQL Injection开放
标签: c# sql oracle ado.net plsql