我希望在我输入的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”
答案 0 :(得分:0)
这是最简单的解决方案。但是考虑重构代码或考虑另一种方法,这不是完整的。还要考虑在sql命令中使用参数。
string initialId = Dt.Rows[0]["ID"].ToString();
do
{
string dCmd = "SELECT ID FROM TableA WHERE Reference_ID = '" + initialId + "'";
SqlDataAdapter dSda = new SqlDataAdapter();
dSda.SelectCommand = new SqlCommand(dCmd, nCon);
DataTable dDt = new DataTable();
dSda.Fill(dDt);
for (int i = 0; i < dDt.Rows.Count; i++)
{
initialId = dDt.Rows[i]["ID"];
Response.Write(dDt.Rows[i]["ID"]);
}
}
while(dDt.Rows.Count > 0)
答案 1 :(得分:0)
您可以尝试此解决方案,首先您可以获得所有不同的Refrence_ID
,并根据您可以循环获取IDs
var gCon = ConfigurationManager.ConnectionStrings["myCon"].ConnectionString;
using (var nCon = new SqlConnection(gCon))
{
try
{
nCon.Open();
String cmd = "SELECT DISTINCT Refrence_ID FROM TableA";
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(cmd, nCon);
DataTable Dt = new DataTable();
adapter.Fill(Dt);
for (int count = 0; count < Dt.Rows.Count(); count++)
{
string dCmd = "SELECT ID FROM TableA WHERE Reference_ID = '" + dt.Rows[count]["Refrence_ID"] + "'";
SqlDataAdapter dSda = new SqlDataAdapter();
dSda.SelectCommand = new SqlCommand(dCmd, nCon);
DataTable dDt = new DataTable();
dSda.Fill(dDt);
for (int i = 0; i < dDt.Rows.Count; i++)
{
Response.Write(dDt.Rows[i]["Distributor_ID"]);
}
}
}
catch (Exception e)
{
Response.Write(e.ToString());
}
finally { nCon.Close(); }
}
答案 2 :(得分:0)
感谢各位朋友帮助我,但不幸的是,这并没有解决主要问题。
经过多次研究后,我得到了我的回答&#34;递归命令&#34;,所以最后我的代码在下面
$(".btn").click(function(){
$(".col-xs-6 , .btn").toggleClass('animated slideOutDown');
$(".btn i").toggleClass('fa-chevron-up');
$(".btn i").toggleClass('fa-chevron-down');
});