foreach (DataRow row in ds.Tables[0].Rows)
  {
  string hwbh = Convert.ToString(row["hwbh"].ToString());
  string cmd2 = "select hwbh,jydxx.sxhh,sdzmc,shrxm,hwmc,hwzjs,hwztj,hwzzl,hwyf,hwzt from hwxx,jydxx where jydxx.jydbh = hwxx.jydbh and hwxx.hwbh ='" + hwbh + "'";
  DataSet ds_hwxx = sqlHelp.GetDataSet(cmd2);
    
  result = "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
  "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
  "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9]+ "]" +
  "]";
  }
    
  Response.Write(result);
这个为什么只输出最后一行??我的意思是要输出所有的记录

解决方案 »

  1.   

    result = ?
    你result的值等于最后一次的赋值
    你把Response.Write(result);放在里面撒或者result += 
      

  2.   

    把Response.Write(result);放在ForEach裏面,就可以了。
      

  3.   

    不行啊 都试过了 放在里面或者result+=  都没有输出了
    result是根据hwbh参数查询数据库得出的记录组织成一定的格式输出的[['10020101019000501 ','7777888','漳州','羽泉','花卉',1,0.000,3.265,1143.00,2 ]]
      

  4.   

    SQLHelper sqlHelp = new SQLHelper();
            string result = "";
            string fhqdh = Request.Params["fhqdh"].ToString();
            string cmd1 = "select hwbh from fhxx where fhqdh='" + fhqdh + "'";
            DataSet ds = sqlHelp.GetDataSet(cmd1);
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                string hwbh = Convert.ToString(row["hwbh"].ToString());
                string cmd2 = "select hwbh,jydxx.sxhh,sdzmc,shrxm,hwmc,hwzjs,hwztj,hwzzl,hwyf,hwzt from hwxx,jydxx where jydxx.jydbh = hwxx.jydbh and  hwxx.hwbh ='" + hwbh + "'";
                DataSet ds_hwxx = sqlHelp.GetDataSet(cmd2);            result =  "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
                         "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
                         "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "]" +
                         "]";
            }        Response.Write(result);
            Response.End();所有的代码   谁给看看?????????????????
      

  5.   

    你试试改成这样
    SQLHelper sqlHelp = new SQLHelper();
      StringBuilder result = "";
      string fhqdh = Request.Params["fhqdh"].ToString();
      string cmd1 = "select hwbh from fhxx where fhqdh='" + fhqdh + "'";
      DataSet ds = sqlHelp.GetDataSet(cmd1);
      foreach (DataRow row in ds.Tables[0].Rows)
      {
          string hwbh = Convert.ToString(row["hwbh"].ToString());
          string cmd2 = "select hwbh,jydxx.sxhh,sdzmc,shrxm,hwmc,hwzjs,hwztj,hwzzl,hwyf,hwzt from hwxx,jydxx where jydxx.jydbh = hwxx.jydbh and hwxx.hwbh ='" + hwbh + "'";
          DataSet ds_hwxx = sqlHelp.GetDataSet(cmd2);      String s = "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
          "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
          "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "]" +
          "]";      result.Append(s);
      }
    然后再调用result.ToString();就应该可以看到所有的记录的
      

  6.   

    或者你用一个stringbuilder来组合你的那么大一串string撒
    最后Response.Write(stringbuilder.ToString());
      

  7.   

     你应该放在foreach里面就对了
      

  8.   

     protected void Page_Load(object sender, EventArgs e)
        {
            SQLHelper sqlHelp = new SQLHelper();
            StringBuilder result = new StringBuilder();
            string fhqdh = Request.Params["fhqdh"].ToString();
            string cmd1 = "select hwbh from fhxx where fhqdh='" + fhqdh + "'";
            DataSet ds = sqlHelp.GetDataSet(cmd1);
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                string hwbh = Convert.ToString(row["hwbh"].ToString());
                string cmd2 = "select hwbh,jydxx.sxhh,sdzmc,shrxm,hwmc,hwzjs,hwztj,hwzzl,hwyf,hwzt from hwxx,jydxx where jydxx.jydbh = hwxx.jydbh and  hwxx.hwbh ='" + hwbh + "'";
                DataSet ds_hwxx = sqlHelp.GetDataSet(cmd2);            string s =  "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
                         "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
                         "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "]" +
                         "]";            result.Append(s);
                Response.Write(result.ToString());
                Response.End();
            }
        }改为这样的话 也是一样的
    我看了在foreach()里面记录都有 ,就是输不出来????
    如果把Response.Write(result)放foreach()里面的话 只输出记录的第一条 ,如果放foreach()外面的话 就只输出记录的最后一条 ?          
      

  9.   

    LZ你需要明确一点,你自己到底需要得到怎样的一个结果,是需要在foreach中一个一个的输出,还是到最后统一输出
    对于第一种情况,你就需要使用你原来的程序,然后把Response.Write(result);放到foreach里面去对于第二种情况,你需要在foreach外面使用你的Response.Write(result.ToString());因为这个result在foreach结束以后已经包含所有的记录了
      

  10.   


    应该说是第二种 我是要把result的结果一起输出,但是如何放在foreach()外面的话  就只能出一条记录 不是所有的记录,好像覆盖掉了前一条
      

  11.   

    Response.Write(result.ToString());
      Response.End();
    放到循环外面!
      

  12.   

    放在foreach()外面的话 就只能输出一条记录 不是所有的记录,好像最后一条覆盖掉了前一条记录 
    所以都是只有一条记录了
      

  13.   

    OK, LZ试试这个代码吧
    List<string> strList = new List<string>();
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    string hwbh = Convert.ToString(row["hwbh"].ToString());
                    string cmd2 = "select hwbh,jydxx.sxhh,sdzmc,shrxm,hwmc,hwzjs,hwztj,hwzzl,hwyf,hwzt from hwxx,jydxx where jydxx.jydbh = hwxx.jydbh and hwxx.hwbh ='" + hwbh + "'";
                    DataSet ds_hwxx = sqlHelp.GetDataSet(cmd2);                string s = "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
                    "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
                    "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "]" +
                    "]";
                    strList.Add(s);
                }            foreach (string s in strList)
                {
                    Response.Write(s);
                }
      

  14.   

    非常感谢  LorenLiu  的热心帮助 
     但是 还是不行啊 连一条记录都没有
      

  15.   

    LorenLiu 能否留下qq  好请教
      

  16.   

    result = 
    等号前加一个“+”
      

  17.   

    string hwbh = Convert.ToString(row["hwbh"].ToString());
    这样子弄,会不会多余,两次转换为tostring
      

  18.   

    不是这个的问题 hwbh 是有值的 现在的问题是数据输出不全 只输出一条
      

  19.   

    我知道原因了 ,我要输出的格式是 [
    ['10020101019000501  ','7777888','漳州','羽泉','花卉',1,0.000,3.265,1143.00,2 ],['10020101102000101  ','5555','漳州','吴孟达','鞋子',1,0.000,2.636,949.00,2 ]
    ]但是result.append(s)执行后 却是输出了以下格式 ,如何将一下格式改为以上的格式[['10020101019000501  ','7777888','漳州','羽泉','花卉',1,0.000,3.265,1143.00,2 ]][['10020101102000101  ','5555','漳州','吴孟达','鞋子',1,0.000,2.636,949.00,2 ]]
      

  20.   


    string result = "[";
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    string hwbh = Convert.ToString(row["hwbh"].ToString());
                    string cmd2 = "select hwbh,jydxx.sxhh,sdzmc,shrxm,hwmc,hwzjs,hwztj,hwzzl,hwyf,hwzt from hwxx,jydxx where jydxx.jydbh = hwxx.jydbh and hwxx.hwbh ='" + hwbh + "'";
                    DataSet ds_hwxx = sqlHelp.GetDataSet(cmd2);                string s = "['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
                    "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
                    "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "],";
                }            result = result.Remove(result.Length - 1);
                result += "]";            Response.Write(result);
      

  21.   

    如果你要换行就在字符串里加上Environment.NewLine,自己试试吧
      

  22.   

    兄弟 不是换行这么简单啊 
    string s =  "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
                         "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
                         "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "]" +
                         "]";
    这是一行的格式
    如果有多行的话 就是 string s =  "[['" + ds_hwxx.Tables[0].Rows[0][0].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][1].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][2].ToString() + "','" + ds_hwxx.Tables[0].Rows[0][3].ToString() +
                         "','" + ds_hwxx.Tables[0].Rows[0][4].ToString() + "'," + ds_hwxx.Tables[0].Rows[0][5].ToString() + "," + ds_hwxx.Tables[0].Rows[0][6].ToString() + "," + ds_hwxx.Tables[0].Rows[0][7].ToString() +
                         "," + ds_hwxx.Tables[0].Rows[0][8].ToString() + "" + "," + ds_hwxx.Tables[0].Rows[0][9] + "]" + ","+ 
    "['" + ds.Tables[0].Rows[1][0].ToString() + "','" + ds.Tables[0].Rows[1][1].ToString() + "','" + ds.Tables[0].Rows[1][2].ToString() + "','" + ds.Tables[0].Rows[1][3].ToString() +
                        "','" + ds.Tables[0].Rows[1][4].ToString() + "','" + ds.Tables[0].Rows[1][5].ToString() + "','" + ds.Tables[0].Rows[1][6].ToString() + "','" + ds.Tables[0].Rows[1][7].ToString() +
                        "','" + ds.Tables[0].Rows[1][8].ToString() + "','" + ds.Tables[0].Rows[1][9].ToString() + "','" + ds.Tables[0].Rows[1][10].ToString() + "','" + ds.Tables[0].Rows[1][11].ToString() +
                        "','" + ds.Tables[0].Rows[1][12].ToString() + "','" + ds.Tables[0].Rows[1][13].ToString() + "'" + "]"  +
                         "]";
      

  23.   

    就是这种格式 
    一行[[1,a,b,c,]]
    二行[[1,a,b,c,],[2,a,b,c]]
    三行[[1,a,b,c,],[2,a,b,c],[3,a,b,c]]
    象这样该怎么组织s呢 
      

  24.   

    晕了,你看你输出的格式
    [
    ['10020101019000501 ','7777888','漳州','羽泉','花卉',1,0.000,3.265,1143.00,2 ],
    ['10020101019000502 ','7777888','漳州','羽泉','花卉',1,0.000,3.265,1143.00,2 ],
    ['10020101019000503 ','7777888','漳州','羽泉','花卉',1,0.000,3.265,1143.00,2 ]
    ]以“[”开始以“]”结束,每一行是一条记录,所以在开头要使result = "[",然后
    result += Environment.NewLine;接下来是用foreach得到每条记录,每条记录都是以],结尾,这样在foreach结束的时候最后一条记录也是有逗号的,我们需要将其去除,最后给result加上]就是最终的结果你需要的是理解如何利用foreach得到你需要的格式
      

  25.   

    不用换行也行啊 我只是为了比较好看而已帮我重新组织一下s的格式,只要结果输出以下格式就可以了就是这种格式  
    一行[[1,a,b,c,]]
    二行[[1,a,b,c,],[2,a,b,c]]
    三行[[1,a,b,c,],[2,a,b,c],[3,a,b,c]]
    ....................................