如果不是表,而是数据行的集合(好象是二维数组?),那么 select average ...指令要我自己来做了?或 select min()...自已写算法求列的最小值? 注意,这时的数据已经是从源数据表中提取出来的在内存中的数据了。(数据量指定,如果是实现功能,设个几万条吧。不过实际应用时可能会以百万条的数据。)

解决方案 »

  1.   

    DataTable是数据集,不是数据库意义的表,仔细看看MSDN吧
      

  2.   

    谁说不可以用关系运算啊,ADO.NET的精髓就是这里啊,给端代码看吧,其实DataSet里有很多有用的东东,包括所谓的排序什么的,大家有空多看看.net的SDK包SqlConnection Conn=null;
    SqlDataAdapter DaRoot=null,DaChild=null;
    DataSet Ds=new DataSet();Conn=new SqlConnection(PublicLib.ReadConfigSettings("ConnString"));
    Conn.Open();string SqlCmdText="Sql语句1";
    DaRoot=new SqlDataAdapter(SqlCmdText,Conn);SqlCmdText="Sql语句2";
    DaChild=new SqlDataAdapter(SqlCmdText,Conn);DaRoot.Fill(Ds,"Root");
    DaChild.Fill(Ds,"Child");DataRelation Rel=Ds.Relations.Add("Menu",Ds.Tables["Root"].Columns["ID"],Ds.Tables["Child"].Columns["SubID"]);//建立一个关系int Count=0;
    string Tmp="";
    if(Ds.Tables["Root"].Rows.Count!=0)
    {
    Sb.Append("<table cellpadding=0 cellspacing=0 border=0>"); foreach(DataRow MainRow in Ds.Tables["Root"].Rows)
    {
    //遍历主表
    foreach(DataRow ChildRow in MainRow.GetChildRows(Rel))
    {
    //遍历从表
    }

    }
    }//析构
    Ds.Dispose();
    DaRoot.Dispose();
    DaChild.Dispose();
    Ds.Dispose();
    Conn.Close();
    Conn.Dispose();