默认情况下,XML内容保额看作是字符串类型的,你可以使用XML Schema或者事先进行排序处理再加入到DataView

解决方案 »

  1.   

    说点具体的行吗?
    我看不懂啊,怎么用XML  Schema 阿?
      

  2.   


    准备xml的时候同时准备Schema 
    下面是一个简单的示例 
    using   System; 
    using   System.Reflection; 
    using   System.Data; 
    using   System.Xml; 
    using   System.IO; 
    using   System.Text; 
    class   A 

          
            public   static   void   Main(String[]   args) 
            { 
                    DataTable   dt   =   new   DataTable(); 
                    dt.Columns.Add( "id ",   typeof(int)); 
                    dt.Columns.Add( "str ",   typeof(string)); 
                    dt.Rows.Add(new   object[]   {9, "9 "   }); 
                    dt.Rows.Add(new   object[]   {   10,   "10 "   }); 
                    dt.Rows.Add(new   object[]   {   11,   "11 "   }); 
                    DataSet   ds   =   new   DataSet(); 
                    ds.Tables.Add(dt); 
                    //不同时写入Schema.则读取出来时因为无法分析数据格式可能导至select出错 
                    //ds.WriteXml( "xmlfile "); 
                    ds.WriteXml( "xmlfilewithschema ",XmlWriteMode.WriteSchema); 
                    ds.Tables.Remove(dt);                 //同时读出时也带着Schema一起读出可以有效还原数据格式 
                    //ds.ReadXml( "xmlfile "); 
                    ds.ReadXml( "xmlfilewithschema ",   XmlReadMode.ReadSchema); 
                    dt   =   ds.Tables[0]; 
                  
                    PrintTable(dt, "id=10 "); 
                    PrintTable(dt,   "id> 10 "); 
                    PrintTable(dt,   "id <10 "); 
                    
                    Console.Read(); 
                                  
            }         static   void   PrintTable(DataTable   dt,string   condition) 
            { 
                    
                    DataRow[]   drs   =   dt.Select(condition); 
                    
                    Console.WriteLine( "条件:{0}记录数:{1} ",condition   ,drs.Length); 
                    foreach(DataRow   dr   in   drs){ 
                            foreach   (DataColumn   col   in   dt.Columns) 
                            { 
                                    Console.Write( "{0}:{1}\t ",col.Caption,dr[col.Caption]   ); 
                            } 
                            Console.Write( "\r\n "); 
                    } 
            } 
      

  3.   

    .net的XML编程一块,最好看一看以后肯定用的着