readxml得到的一个datatable后,列都是string类型的,我有什么办法让列是我想要的型呢??比如int或datetime
构好datatable再readxml是可以的,可是好麻烦,因为列太多了!
写for又太耗内存了!
还请支招!

解决方案 »

  1.   

    1)需要类型化的XML支持,你可以google一下
    2)可以用foreach一下,在foreach里要手动控制对象的生存时间
    比如foreach(DataRow dr in datatable.rows)
    {
    using("这里放上你用到的对象,你可以看看msdn上using的用法")
    {
    }
    }
      

  2.   

    你可以先new一个你想要的datetime的datacloum
    然后加到datatable中,然后把string这个你不想要的cloum删除
      

  3.   

    DataTable table = new DataTable("table"); 
    table.Columns.Add("tag", typeof(DateTime)); 
    table.Columns.Add("sum", typeof(Int32)); 

    ds.ReadXml("c:data.xml"); 
    foreach (DataRow r in ds.Tables[0].Rows) 
    allChannel.ImportRow(r); 
      

  4.   

    allChannel.ImportRow(r); 
    是什么意思~~~没这个对象啊``
      

  5.   

    类型化的XML支持.....
    我的理解~害我浪费了好多时间..不过还是学到了些东西....下面是经历.....
    http://community.csdn.net/Expert/topic/5411/5411687.xml?temp=.8810541closetome(即鹿无虞,惟入于林中。君子几,不如舍。往吝。) 
    类型化的XML支持~不知道说的是不是xsd~xml架构~~还是什么?
      

  6.   

    搞定~~结帖~~这个问题真菜...写个XSD
    ds.ReadXmlSchema(@"..\..\book.xsd");
    ds.ReadXml(@"..\..\book.xml");就可以了