我用循环语句把数据库的数据显示到PlaceHolder1
不用swich能正常显示用了就不显示了。。郁闷。。
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data.MySqlClient;namespace myweb
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DataTable dt = myweb.MySqlConn.GetTable("select * from bbs");
                ShowTable(dt);
            }
        }        private void ShowTable(DataTable dt)
        {
            Table t = new Table();//Table是服务器端的表 
            //第1行显示列标题
            TableRow tr = new TableRow();//定义一行
            TableCell tc;
            //下面每一行显示数据
            for (int i = 0; i < dt.Rows.Count; i++)//遍历行数据
            {
                tr = new TableRow();
                for (int j = 0; j < dt.Columns.Count; j++)//遍历在第i行第j列的数据
                {
                    //switch (j)
                    //{
                    //    case 1: break;
                    //    case 2:
                    //        {
                    //            tc = new TableCell();
                    //            Label lb = new Label();
                    //            lb.Width = 489;
                    //            lb.Text = dt.Rows[i][j].ToString();
                    //            tc.Controls.Add(lb);
                    //        }
                    //        break;
                    //    case 3:
                    //        {
                    //            tc = new TableCell();
                    //            Label lb = new Label();
                    //            lb.Width = 50;
                    //            lb.Text = dt.Rows[i][j].ToString();
                    //            tc.Controls.Add(lb);
                    //        }
                    //        break;
                    //    case 4:
                    //        {
                    //            tc = new TableCell();
                    //            Label lb = new Label();
                    //            lb.Width = 50;
                    //            lb.Text = dt.Rows[i][j].ToString();
                    //            tc.Controls.Add(lb);
                    //        }
                    //        break;
                    //    case 5:
                    //        {
                    //            tc = new TableCell();
                    //            Label lb = new Label();
                    //            lb.Width = 70;
                    //            lb.Text = dt.Rows[i][j].ToString();
                    //            tc.Controls.Add(lb);
                    //        }
                    //        break;
                    //    case 6:
                    //        {
                    //            tc = new TableCell();
                    //            Label lb = new Label();
                    //            lb.Width = 98;
                    //            lb.Text = dt.Rows[i][j].ToString();
                    //            tc.Controls.Add(lb);
                    //        }
                    //        break;                    //}
                    tc = new TableCell();//在该tc中,是可以容纳任何的服务器端控件,可以实现自定义
                    Label lb = new Label();//创建labl
                    lb.Width = 70;
                    lb.Text = dt.Rows[i][j].ToString();
                    tc.Controls.Add(lb);//将服务器端控件加载到该单元格tc的容器集合中
                    tr.Cells.Add(tc);
                    }
                    t.Rows.Add(tr);
                }                //显示在PlaceHolder中
                this.PlaceHolder1.Controls.Add(t);
            }        }
    }

解决方案 »

  1.   

    根据i和j设置Width 就是,定义多个销毁资源
    switch (j)
    {
    default:break;
    }
      

  2.   

    类似这样:int width;
    switch (j)
    {
        case 2: width = 489; break;
        case 3:
        case 4: width = 50; break;
        case 5: width = 70; break;
        case 6: width = 98; break;
    }tc = new TableCell();//在该tc中,是可以容纳任何的服务器端控件,可以实现自定义
    Label lb = new Label();//创建labl
    lb.Width = width;
    lb.Text = dt.Rows[i][j].ToString();
    tc.Controls.Add(lb);//将服务器端控件加载到该单元格tc的容器集合中
    tr.Cells.Add(tc);
      

  3.   

    switch (j)
    {
        default: width = 70; break;
    }