【发布时间】:2018-01-11 00:57:57
【问题描述】:
在我输入的 User_id 通过 Reference_id 从表中相互引用之后,我想检索所有 User_id 的下一个,下面的代码给出了确切的结果,但它检索了从“2001 到 2005”的所有 User_id。
如果我从文本框中输入“2002”作为 User_id,那么它必须从“2003 - 2005”中检索
Table_xyz 列 User_id 的值 = 2001、2002、2003、2004、2005 Table_xyz 列 Reference_id 的值 = 2000, 2001, 2002, 2003, 2004
var gCmd = new SqlCommand(@"SELECT User_id FROM Table_xyz", nCon);
SqlDataAdapter Sda = new SqlDataAdapter(gCmd);
DataTable Dt = new DataTable();
Sda.Fill(Dt);
for (int i = 0; i < Dt.Rows.Count; i++)
{
string referenceid = Dt.Rows[i]["User_id"].ToString();
var gCmd1 = new SqlCommand(@"SELECT User_id FROM Table_xyz
WHERE Reference_id = '" + referenceid + "'", nCon);
SqlDataAdapter Sda1 = new SqlDataAdapter(gCmd1);
DataTable Dt1 = new DataTable();
Sda1.Fill(Dt1);
Response.Write(referenceid);
}
我尝试将“SELECT User_id FROM Table_xyz WHERE User_id = '2001'”添加到第一个命令,但它只返回一个 User_id 匹配“2001”的值
【问题讨论】:
-
这段代码遇到了什么问题,?您是否进行了调试以找出问题所在?
-
是的,没有错误,但我认为我不理解逻辑,它只返回第一个值而不是休息
-
它只返回一个值,因为循环只运行一次。这个数组
var array = list.ToArray();只有一个值。