应该要写一个怎样的循环语句呢?

解决方案 »

  1.   

    while(reader.Read())
    {...
    ....
    }
      

  2.   

    这个是SqlDataReader的,其他两种数据集如何遍历呢?
      

  3.   

    SqlDataReader dr3 = myCategory.drSelectOrderBy();
    int iDeepNum;
    string strCategoryName;
    while(dr3.Read())
    {
    iDeepNum = dr3.GetInt32(2);
    strCategoryName = dr3.GetString(3);
    if(iDeepNum == 1)
    {
    strCategoryName = strCategoryName.ToString();
    }
    else
    {
    strCategoryName = "|-" + strCategoryName.ToString();
    } ddlCategory.DataSource = dr3;
    ddlCategory.DataTextField = strCategoryName.ToString();
    ddlCategory.DataValueField = strCategoryName.ToString();
    ddlCategory.DataBind();
    }这样为何不能绑定?
      

  4.   

    Dataset楼主是要行遍历呢?还是列遍历?
    如果是每行每列遍历的话,嵌套循环就何以了
    ArrayList是一维的还是多维的?
    要是一维的一次循环就行,多维的同上
      

  5.   

    那DataSet到底是用foreach{}还是for{for{}}?
      

  6.   

    DataSet ds = new Dataset();
    行:foreach(DataRow dr in ds.Tables[0].Rows){操作dr}
    列:foreach(DataColumn dc in ds.Tables[0].Columns){操作dc}
      

  7.   

    DataSet ds = myCategory.dsSelectOrderBy();
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    if(int.Parse(ds.Tables[0].Rows[i][2].ToString())==1)
    {
    ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString();
    }
    else
    {
    ds.Tables[0].Rows[i][3] = "|-" + ds.Tables[0].Rows[i][3].ToString();
    } Response.Write(int.Parse(ds.Tables[0].Rows[i][2].ToString()));
    ddlCategory.DataSource = ds.Tables[0].DefaultView;
    ddlCategory.DataTextField = ds.Tables[0].Columns[3].ToString();
    ddlCategory.DataValueField = ds.Tables[0].Columns[3].ToString();
    ddlCategory.DataBind();
    这个代码改写成foreach形式怎么改?
      

  8.   

    那DataSet到底是用foreach{}还是for{for{}}?>>你左手和右手用剪刀石头布来比,左手赢了用foreach,右手赢了用for{for{}}.每次都可以这样决定。
      

  9.   

    既然这么英明帮我解决一个问题:
    DataSet ds = myCategory.dsSelectOrderBy();
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    if(int.Parse(ds.Tables[0].Rows[i][2].ToString())==1)
    {
    ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString();
    }
    else
    {
    ds.Tables[0].Rows[i][3] = "|-" + ds.Tables[0].Rows[i][3].ToString();
    }
    }
    ddlCategory.DataSource = ds.Tables[0].DefaultView;
    ddlCategory.DataTextField = ds.Tables[0].Columns[3].ToString();
    ddlCategory.DataValueField = ds.Tables[0].Columns[3].ToString();
    ddlCategory.DataBind();
    }我现在出现的结果是,两级之后的显示都变成了"|-"+类别,而不是N个"|-"+类别,还差一个怎样的循环条件???
      

  10.   

    这根本不是循环数据集的问题。搭眼一看就知道你要干什么了。for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {

    int currentDepth = int.Parse(ds.Tables[0].Rows[i][2].ToString());

    if(currentDepth ==1)
    {
    ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString();
    }
    else
    {
    for(int k=1; k<currentDepth; k++)
    {
    ds.Tables[0].Rows[i][3] = "-" + ds.Tables[0].Rows[i][3].ToString();
    }
    ds.Tables[0].Rows[i][3] = "|" + ds.Tables[0].Rows[i][3].ToString();
    }

    }