asp.net创建一个3列,n行的表格,表格的具体要求如下。

第一列为列车车次,第二列为起点站,第3列为终点站
第一列的数据为select distinct ID from TrainTime order by ID查询语句的结果。
第二列的数据为select Station from TrainTime where S_No='1'order by ID的查询 结果。
第三列的数据为select Station from TrainTime where D_Time='-' order by ID的查询结果,
有没有大神能告诉怎么创建这个表格,求解啊!

http://bbs.csdn.net/topics/391954105

 using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Text; 

public partial class Default2 : System.Web.UI.Page 
{ 
// 步骤 

// 1. 要有个总的方法来拼字符串 好比是 private string MakeString() 
// 2. 在这个总的方法里面要有个来获取数据的方法 好比是 private DataTable FetchData() 
protected void Page_Load(object sender, EventArgs e) 
{ 
Response.Write(MakeString()); 
} 


private string MakeString() 
{ 
DataTable dtData=FetchData(); 
StringBuilder strContent=new StringBuilder(); 
string strFormate="<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>"; 
strContent.Append("<table>"); 
foreach(DataRow row in dtData.Rows) 
{ 
strContent.AppendFormat(strFormate, row[0].ToString(), row[1].ToString(), row[2].ToString()); 
} 
strContent.Append("</table>"); 
return strContent.ToString(); 
} 

private DataTable FetchData() 
{ 
// 这里是拼装,你也可以自己获得 
DataTable dtData=new DataTable(); 
dtData.Columns.Add("C1"); 
dtData.Columns.Add("C2"); 
dtData.Columns.Add("C3"); 
dtData.Rows.Add(new string[] { "1-1", "1-2", "1-3" }); 
dtData.Rows.Add(new string[] { "2-1", "2-2", "2-3" }); 
dtData.Rows.Add(new string[] { "3-1", "3-2", "3-3" }); 
dtData.Rows.Add(new string[] { "4-1", "4-2", "4-3" }); 
dtData.Rows.Add(new string[] { "5-1", "5-2", "5-3" }); 

return dtData; 
} 
}
 //产生表格
            TableRow tRow;//定义数据表行
            TableCell tCell;//定义数据表格
            Label lblTitle;//定义标题标签
            Label lblChapter;//定义章节标签
            TextBox txtValue;//定义用来输入分数的文本框
            numRows = 3;
            numCells = 3;
            //首先是给定了几行几列,
            for (int iRow = 0; iRow <= numRows; iRow++)
            {
                tRow = new TableRow();//new出一个行来
                for (int jCol = 0; jCol <= numCells; jCol++)
                {
                    //判断如果是第一行则添加表头,表头为难度等级
                    if (iRow == 0)
                    {
                        //当为第一行时执行下列代码
                        if (jCol == 0)
                        {
                            //当为第一行第一列时
                            tCell = new TableCell();        //new出一个cell
                            lblTitle = new Label();         //这是我自己用的一个lable,你可以参考
                            lblTitle.Text = "难度系数:";   //给label赋值
                            lblTitle.Width = 80;            //设置宽度
                            tCell.Controls.Add(lblTitle);   //添加label到cell中
                            tRow.Cells.Add(tCell);          //添加Cell到TableRow中
                        }
                        else
                        {
                            //如果不是第一列则:
                            tCell = new TableCell();
                            lblTitle = new Label();
                            lblTitle.Text = jCol.ToString().Trim();
                            tCell.HorizontalAlign = HorizontalAlign.Center;
                            tCell.Controls.Add(lblTitle);
                            tRow.Cells.Add(tCell);
                        }
                    }
                    else
                    {
                        //如果是第一列,则添加行标题。
                        if (jCol == 0)
                        {
                            tCell = new TableCell();
                            lblChapter = new Label();
                            lblChapter.Text = strChapter[iRow - 1].ToString() + ":";
                            lblChapter.Width = 80;
                            tCell.Controls.Add(lblChapter);
                            tCell.HorizontalAlign = HorizontalAlign.Center;
                            tRow.Cells.Add(tCell);
                        }
                        else
                        {
                            //不是第一行第一列则添加内容
                            tCell = new TableCell();
                            txtValue = new TextBox();
                            txtValue.ID = "txt" + iRow.ToString() + jCol.ToString();//给控件设置id,因为我以后要用到这个控件。
                            txtValue.Text = "0";
                            txtValue.Text = txtValue.Text.Trim();
                            tCell.Controls.Add(txtValue);
                            tRow.Cells.Add(tCell);
                        }
                    }
                }
                autoTable.Rows.Add(tRow);//添加TableRow
            }

 <%
    Dim i, j, iCols
    i = 0 '//定义i进行循环
    iCols = 3 '//一行有几列(正整数)
    Response.Write(""&vbNewLine) '//输出Table头和第一个Tr
    Do While Not oRs.EOF '//开始输出记录集 用 For ors.RecordCount Next 也行
    If i>0 And i Mod iCols = 0 Then Response.Write(""&vbNewLine) '//如果列数等于 iCols 换行
    i = i + 1
    Response.Write("输出第 "&i&" 条记录"&vbNewLine)
    oRs.MoveNext
    Loop '//结束输出记录集
    oRs.Close
    For j = 1 To iCols -1 '//开始补足空记录,最多补iCols-1条
    If i Mod iCols = 0 Then Exit For '//列数已经够 iCols 不再输出
    i = i + 1
    Response.Write("补足第 "&j&" 条记录"&vbNewLine)
    Next
    Response.Write(""&vbNewLine) '//输出Table尾
    %>

http://bbs.csdn.net/topics/300030296

Datatable可以 超级表可以吗?