用DataTable获取数据库里面最新添加的3条信息,将其显示到一个表格中,每个单元格用的lable显示.
比如:
我要查看家庭子女姓名,用
lable1.Text=FamilyMenbers.Rows[0]["name"];
lable2.Text=FamilyMenbers.Rows[1]["name"];
lable3.Text=FamilyMenbers.Rows[2]["name"];
显示姓名.但是 不是每个家庭都有3个孩子.可能只有一个或者有2个.这时候就要报错:在位置[1]或者[2]没有任何行.
这种情况怎么显示数据?
貌似用foreach也不行~ DataTable house = Archives.GetHouse(userID);
            if (house != null)
            {
                if (house.Rows[0] != null)
                {
                    lblHouseHost.Text = GetString(house.Rows[0]["Name"].ToString());
                    lblBuyHouseTime.Text = Convert.ToDateTime(house.Rows[0]["BuyTime"].ToString()).ToString("yyyy-MM-dd");
                    lblHouseMoney.Text = GetString(house.Rows[0]["Money"].ToString());
                    lblHouseAddress.Text = GetString(house.Rows[0]["Address"].ToString());
                    lblHouseArea.Text = GetString(house.Rows[0]["Buildingarea"].ToString());
                }
                if (house.Rows[1] != null)
                {
                    lblHouseHost2.Text = GetString(house.Rows[1]["Name"].ToString());
                    lblBuyHouseTime2.Text = Convert.ToDateTime(house.Rows[1]["BuyTime"].ToString()).ToString("yyyy-MM-dd");
                    lblHouseMoney2.Text = GetString(house.Rows[1]["Money"].ToString());
                    lblHouseAddress2.Text = GetString(house.Rows[1]["Address"].ToString());
                    lblHouseArea2.Text = GetString(house.Rows[1]["Buildingarea"].ToString());
                }
                if (house.Rows[2] != null)
                {
                    lblHouseHost3.Text = GetString(house.Rows[2]["Name"].ToString());
                    lblBuyHouseTime3.Text = Convert.ToDateTime(house.Rows[2]["BuyTime"].ToString()).ToString("yyyy-MM-dd");
                    lblHouseMoney3.Text = GetString(house.Rows[2]["Money"].ToString());
                    lblHouseAddress3.Text = GetString(house.Rows[2]["Address"].ToString());
                    lblHouseArea3.Text = GetString(house.Rows[2]["Buildingarea"].ToString());
                }
                lblHouseSell.Text = GetString(house.Rows[0]["SellSituation"].ToString());
                lblHouseAllowance.Text = GetString(house.Rows[0]["AllowanceSituation"].ToString());
            }        }
    }

解决方案 »

  1.   

            for (int i = 0; i < FamilyMenbers.Rows.Count; i++)
            {
                Label lb= (Label)Page.FindControl("lable" + i+1);
                lb.Text = FamilyMenbers.Rows[i]["name"].ToString();
            }
      

  2.   

    我就是想问   如果没有小于3条的时候怎么将信息显示在lable中去
      

  3.   

    先判断家庭有几个子女,然后赋值lable
    固定子女显示,label1为第一个子女,label2为第二个子女,label3为第三个子女
    lable1.Text=FamilyMenbers.Rows[0]["name"]; 
    lable2.Text=FamilyMenbers.Rows[1]["name"]; 
    lable3.Text=FamilyMenbers.Rows[2]["name"]; 
      

  4.   

     DataTable objtable = null;
                if (objtable.Rows.Count < 3)
                {
                    for (int i = 0; i < objtable.Rows.Count; i++)
                    {
                        if(objtable.Rows[i]!=null)
    {
     lblHouseHost.Text = GetString(house.Rows[i]["Name"].ToString());
                        lblBuyHouseTime.Text = Convert.ToDateTime(house.Rows[i]["BuyTime"].ToString()).ToString("yyyy-MM-dd");
                        lblHouseMoney.Text = GetString(house.Rows[i]["Money"].ToString());
                        lblHouseAddress.Text = GetString(house.Rows[i]["Address"].ToString());
                        lblHouseArea.Text = GetString(house.Rows[i]["Buildingarea"].ToString());}.....
                    }
                }
      

  5.   

    DataTable objtable = null; 
                if (objtable.Rows.Count <= 3) 
                { 
                    for (int i = 0; i < objtable.Rows.Count; i++) 
                    { 
                        if(objtable.Rows[i]!=null) 

    lblHouseHost.Text = GetString(house.Rows[i]["Name"].ToString()); 
                        lblBuyHouseTime.Text = Convert.ToDateTime(house.Rows[i]["BuyTime"].ToString()).ToString("yyyy-MM-dd"); 
                        lblHouseMoney.Text = GetString(house.Rows[i]["Money"].ToString()); 
                        lblHouseAddress.Text = GetString(house.Rows[i]["Address"].ToString()); 
                        lblHouseArea.Text = GetString(house.Rows[i]["Buildingarea"].ToString()); } ..... 
                    } 
                }
      

  6.   

    如果你页面的控件Id是连续的  label1  label2  label3....DataTable house = Archives.GetHouse(userID);
    for(int i=0;i<house.Rows.Count;i++)
    {
       Label lblHouseHost=(Label)Form.FindControl("lblHouseHost"+(i+1).ToString());
       lblHouseHost.Text = GetString(house.Rows[i]["Name"].ToString());   Label lblBuyHouseTime=(Label)Form.FindControl("lblBuyHouseTime"+(i+1).ToString());
       lblBuyHouseTime.Text = Convert.ToDateTime(house.Rows[i]["BuyTime"].ToString()).ToString("yyyy-MM-dd");   Label lblHouseMoney=(Label)Form.FindControl("lblHouseMoney"+(i+1).ToString());
       lblHouseMoney.Text = GetString(house.Rows[i]["Money"].ToString());   Label lblHouseAddress=(Label)Form.FindControl("lblHouseAddress"+(i+1).ToString());
       lblHouseAddress.Text = GetString(house.Rows[i]["Address"].ToString());
          
       Label lblHouseArea=(Label)Form.FindControl("lblHouseArea"+(i+1).ToString());
       lblHouseArea.Text = GetString(house.Rows[i]["Buildingarea"].ToString());
    }
      

  7.   

    建议你用repeater控件或者datalist控件进行绑定吧。
      

  8.   

    郁闷了~
    这个页面可能有100多个空吧,
    要写多少...FindControl啊~!!!
    页面是客户要求的,不能更改的..