我将查询作为具有单个参数(并且已更改)的字符串运行,但出现了一些奇怪的行为。这是代码:
String cmd = "SELECT RID FROM SCHEMAS
WHERE NAMESPACE_PREFIX = '" + prefix + "' AND GENERIC_SCHEMA = 1";
Response.Write(cmd + "<br>");
using (SqlDataReader elementReader = elementDB.executeCommand(cmd))
{
while (elementReader.Read())
{
Response.Write(cmd+ elementReader["RID"].ToString() + "<br>");
}
}
我期望发生的事情:
Response.Write
执行两次,数据相同。
实际发生了什么:
elementReader 似乎“记住”了前缀的第一个值。当 'prefix' 变量改变时,SQL 语句外的 Response.Write 正确输出字符串,但 SQL 语句内的 while 循环根本不执行。然而,只要 'prefi'x 回到它设置的第一个值,语句就会执行。
我完全不知道为什么会发生这种情况,并希望得到帮助。谢谢。