当前位置:编程学习 > C#/ASP.NET >>

谁能帮我解决一下这个外循环+内循环???

小弟初学,不懂高级的写法。用了最傻瓜式的,也希望不要给出“太过”高级的答案,我也许看不懂。

问题:

        DataSet ds = KKsql.GetDataSet("SELECT * FROM ProduLM ORDER BY [quanzhong], [id] DESC", "Produlm");
        DataRow[] row = ds.Tables["Produlm_hy"].Select();
        string idhyy1, btty1, pxxy1;

        string aa11, aa22, aa33, aa44, aa55, aa66, aa77, aa88, aa99, aa110, aa112, aa113, aa114, aa115, aa116, aa117, aa118, aa119, aa1110, aa1111;
        foreach (DataRow rs in row)
        {
            {
                idhyy1 = rs["id"].ToString();
                btty1 = rs["biaoti"].ToString();
                pxxy1 = rs["quanzhong"].ToString();

                aa11 = "<div class='ledjg12 ledcl'></div>";
                aa22 = "<div class='ledlanab'>";
                aa33 = "<div class='ledw524 ledcl ledlan02'>";
                aa44 = "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
                aa55 = "<tr>";
                aa66 = "<td width='88%'><span class='ledabout'>" + btty1 + "</span></td>";
                aa77 = "<td width='12%'><a href='#' target='_blank'><img src='/template/ledimg/more.png' border='0' /></a></td>";
                aa88 = "</tr>";
                aa99 = "</table>";
                aa110 = "<div class='ledjiage'>";

                aa119 = "</div>";
                aa1110 = "</div>";
                aa1111 = "</div>";

                DataSet dsa2 = KKsql.GetDataSet("SELECT top 6 * FROM Product where lanmu=" + idhyy1 + " ORDER BY [quanzhong], [id] DESC", "Prodfffulm");
                DataRow[] rowa2 = dsa2.Tables["Prodfffulm"].Select();
                string idhy22, rul22, jiage22, youhui22, biaoti22;
                foreach (DataRow rsa2 in rowa2)
                {
                    {
                        idhy22 = rsa2["datuurl"].ToString();
                        rul22 = rsa2["htmlurl"].ToString();

                        jiage22 = rsa2["shicjge"].ToString();
                        youhui22 = rsa2["youhui"].ToString();

                        biaoti22 = rsa2["biaoti"].ToString();


                        string strhyisp = idhy22;
                        string[] NNNisp = strhyisp.Split('|');

                        aa112 = "<ul>";
                        aa113 = "<li class='hykuang'><a href='Web/Products/" + rul22 + "' target='_blank'><img alt='" + biaoti22 + "' src='Files/Products/images/" + NNNisp[0] + "' width='145' height='94' border='0' /></a></li>";
                        aa114 = "<li><a href='Web/Products/" + rul22 + "' target='_blank'>" + biaoti22 + "</a></li>";
                        aa115 = "<li>Market price:$<span>" + jiage22 + "</span></li>";
                        aa116 = "<li>Offer Price:$<span>" + youhui22 + "</span></li>";
                        aa117 = "<li> <a href='Web/Products/" + rul22 + "'><img src='template/ledimg/collect.png' width='61' height='18' border='0' /></a>   <a href='Web/Products/" + rul22 + "'><img src='template/ledimg/buy.png' width='43' height='18' border='0' /></a> </li>";
                        aa118 = "</ul>";

                        Label7.Text += aa112 + aa113 + aa114 + aa115 + aa116 + aa117 + aa118;          

                    }

                }

                Label6.Text += aa11 + aa22 + aa33 + aa44 + aa55 + aa66 + aa77 + aa88 + aa99 + aa110 + Label7.Text + aa119 + aa1110 + aa1111;

            }

        }


解析:

从上面的代码.net(C#),我试图在第一次循环的时候得到
Label6.Text += aa11 + aa22 + aa33 + aa44 + aa55 + aa66 + aa77 + aa88 + aa99 + aa110 + Label7.Text + aa119 + aa1110 + aa1111;

其中,Label7.Text是 循环6次 后得到的值。

即Label6.Text +=  循环1次(aa11+aa22+....) + 根据外循环得到的ID作为条件在内循环6次后得到的Label7.Text + 循环1次(aa119 + aa1110 + aa1111)


但是,结果却是:

当外循环了N次后,内容循环的那6次却是相同的。意思就是说,外循环很多次后,内循环却没有根据 where lanmu=" + idhyy1 + " 循环6次、、、、、哎。好复杂。、 --------------------编程问答-------------------- --------------------编程问答-------------------- 先打个断点看看rowa2中是不是你想要的数据 --------------------编程问答--------------------

        DataSet ds = KKsql.GetDataSet("SELECT * FROM ProduLM ORDER BY [quanzhong], [id] DESC", "Produlm");
        DataRow[] row = ds.Tables["Produlm_hy"].Select();
        string idhyy1, btty1, pxxy1;

        string aa11, aa22, aa33, aa44, aa55, aa66, aa77, aa88, aa99, aa110, aa112, aa113, aa114, aa115, aa116, aa117, aa118, aa119, aa1110, aa1111;
        foreach (DataRow rs in row)
        {
            {
                idhyy1 = rs["id"].ToString();
                btty1 = rs["biaoti"].ToString();
                pxxy1 = rs["quanzhong"].ToString();

                aa11 = "<div class='ledjg12 ledcl'></div>";
                aa22 = "<div class='ledlanab'>";
                aa33 = "<div class='ledw524 ledcl ledlan02'>";
                aa44 = "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
                aa55 = "<tr>";
                aa66 = "<td width='88%'><span class='ledabout'>" + btty1 + "</span></td>";
                aa77 = "<td width='12%'><a href='#' target='_blank'><img src='/template/ledimg/more.png' border='0' /></a></td>";
                aa88 = "</tr>";
                aa99 = "</table>";
                aa110 = "<div class='ledjiage'>";

                aa119 = "</div>";
                aa1110 = "</div>";
                aa1111 = "</div>";

                DataSet dsa2 = KKsql.GetDataSet("SELECT top 6 * FROM Product where lanmu='" + idhyy1 + "' ORDER BY [quanzhong], [id] DESC", "Prodfffulm");
                DataRow[] rowa2 = dsa2.Tables["Prodfffulm"].Select();
                string idhy22, rul22, jiage22, youhui22, biaoti22;
                foreach (DataRow rsa2 in rowa2)
                {
                    idhy22 = rsa2["datuurl"].ToString();
                    rul22 = rsa2["htmlurl"].ToString();

                    jiage22 = rsa2["shicjge"].ToString();
                    youhui22 = rsa2["youhui"].ToString();

                    biaoti22 = rsa2["biaoti"].ToString();


                    string strhyisp = idhy22;
                    string[] NNNisp = strhyisp.Split('|');

                    aa112 = "<ul>";
                    aa113 = "<li class='hykuang'><a href='Web/Products/" + rul22 + "' target='_blank'><img alt='" + biaoti22 + "' src='Files/Products/images/" + NNNisp[0] + "' width='145' height='94' border='0' /></a></li>";
                    aa114 = "<li><a href='Web/Products/" + rul22 + "' target='_blank'>" + biaoti22 + "</a></li>";
                    aa115 = "<li>Market price:$<span>" + jiage22 + "</span></li>";
                    aa116 = "<li>Offer Price:$<span>" + youhui22 + "</span></li>";
                    aa117 = "<li> <a href='Web/Products/" + rul22 + "'><img src='template/ledimg/collect.png' width='61' height='18' border='0' /></a>   <a href='Web/Products/" + rul22 + "'><img src='template/ledimg/buy.png' width='43' height='18' border='0' /></a> </li>";
                    aa118 = "</ul>";

                    Label7.Text += aa112 + aa113 + aa114 + aa115 + aa116 + aa117 + aa118;
                }
                Label6.Text += aa11 + aa22 + aa33 + aa44 + aa55 + aa66 + aa77 + aa88 + aa99 + aa110 + Label7.Text + aa119 + aa1110 + aa1111;
            }
        }
--------------------编程问答-------------------- --------------------编程问答-------------------- 是不是你的内循环测试数据本身就有问题 --------------------编程问答-------------------- 你那个表Product里面有6个返回值没?是不是数据库的问题? --------------------编程问答-------------------- 建议你将dsa2中得到的值输出看看 --------------------编程问答-------------------- 你可以换种思路的,试下递归算法 --------------------编程问答-------------------- 先看下数据库,测试下你的查询,返回值 --------------------编程问答-------------------- 内循环每一遍的值覆盖了,第一遍外循环时,会把内循环全部执行完。可以先用集合先添加内循环的值 --------------------编程问答-------------------- 调试看下里面拼成的SQL语句有没问题
SELECT top 6 * FROM Product where lanmu='" + idhyy1 + "' ORDER BY [quanzhong], [id] DESC

用StringBuilder好一些 --------------------编程问答-------------------- DataSet ds = KKsql.GetDataSet("SELECT * FROM ProduLM ORDER BY [quanzhong], [id] DESC", "Produlm");
        DataRow[] row = ds.Tables["Produlm_hy"].Select();
        string idhyy1, btty1, pxxy1;

        string aa11, aa22, aa33, aa44, aa55, aa66, aa77, aa88, aa99, aa110, aa112, aa113, aa114, aa115, aa116, aa117, aa118, aa119, aa1110, aa1111;
        foreach (DataRow rs in row)
        {
            {
                idhyy1 = rs["id"].ToString();
                btty1 = rs["biaoti"].ToString();
                pxxy1 = rs["quanzhong"].ToString();

                aa11 = "<div class='ledjg12 ledcl'></div>";
                aa22 = "<div class='ledlanab'>";
                aa33 = "<div class='ledw524 ledcl ledlan02'>";
                aa44 = "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
                aa55 = "<tr>";
                aa66 = "<td width='88%'><span class='ledabout'>" + btty1 + "</span></td>";
                aa77 = "<td width='12%'><a href='#' target='_blank'><img src='/template/ledimg/more.png' border='0' /></a></td>";
                aa88 = "</tr>";
                aa99 = "</table>";
                aa110 = "<div class='ledjiage'>";

                aa119 = "</div>";
                aa1110 = "</div>";
                aa1111 = "</div>";

                DataSet dsa2 = KKsql.GetDataSet("SELECT top 6 * FROM Product where lanmu='" + idhyy1 + "' ORDER BY [quanzhong], [id] DESC", "Prodfffulm");
                DataRow[] rowa2 = dsa2.Tables["Prodfffulm"].Select();
                string idhy22, rul22, jiage22, youhui22, biaoti22;
                foreach (DataRow rsa2 in rowa2)
                {
                    idhy22 = rsa2["datuurl"].ToString();
                    rul22 = rsa2["htmlurl"].ToString();

                    jiage22 = rsa2["shicjge"].ToString();
                    youhui22 = rsa2["youhui"].ToString();

                    biaoti22 = rsa2["biaoti"].ToString();


                    string strhyisp = idhy22;
                    string[] NNNisp = strhyisp.Split('|');

                    aa112 = "<ul>";
                    aa113 = "<li class='hykuang'><a href='Web/Products/" + rul22 + "' target='_blank'><img alt='" + biaoti22 + "' src='Files/Products/images/" + NNNisp[0] + "' width='145' height='94' border='0' /></a></li>";
                    aa114 = "<li><a href='Web/Products/" + rul22 + "' target='_blank'>" + biaoti22 + "</a></li>";
                    aa115 = "<li>Market price:$<span>" + jiage22 + "</span></li>";
                    aa116 = "<li>Offer Price:$<span>" + youhui22 + "</span></li>";
                    aa117 = "<li> <a href='Web/Products/" + rul22 + "'><img src='template/ledimg/collect.png' width='61' height='18' border='0' /></a>   <a href='Web/Products/" + rul22 + "'><img src='template/ledimg/buy.png' width='43' height='18' border='0' /></a> </li>";
                    aa118 = "</ul>";

                    Label7.Text += aa112 + aa113 + aa114 + aa115 + aa116 + aa117 + aa118; 

         Label6.Text += aa11 + aa22 + aa33 + aa44 + aa55 + aa66 + aa77 + aa88 + aa99   + aa110 + Label7.Text + aa119 + aa1110 + aa1111;

                }
           }
        }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,