.net Dataset.ReadXml()是否将其表中的所有列数据类型设置为字符串?

.net Dataset.ReadXml()是否将其表中的所有列数据类型设置为字符串?,.net,asp.net,vb.net,ado.net,.net,Asp.net,Vb.net,Ado.net,以下代码从web服务获取xml数据,然后使用ReadXml方法读取数据集。此Xml具有每个表行的ID和MyDate标记(因此表(0)将具有ID和MyDate列),并且此Xml数据没有与其关联的架构。第一次加载页面时,它按asc顺序按ID排序。它一直工作到ID为999。当下一个ID为1000时,即使在ID asc中,在datagrid中,1000也显示在999之前 我想确认,当使用ReadXml加载数据集时,其表中的所有列都被视为字符串,即使它们是数字或日期,这就是为什么在ID asc中,顺序10

以下代码从web服务获取xml数据,然后使用ReadXml方法读取数据集。此Xml具有每个表行的ID和MyDate标记(因此表(0)将具有ID和MyDate列),并且此Xml数据没有与其关联的架构。第一次加载页面时,它按asc顺序按ID排序。它一直工作到ID为999。当下一个ID为1000时,即使在ID asc中,在datagrid中,1000也显示在999之前

我想确认,当使用ReadXml加载数据集时,其表中的所有列都被视为字符串,即使它们是数字或日期,这就是为什么在ID asc中,顺序1000在999之前出现的原因

此外,MyDate标记的日期格式为“01/31/2011”(mm/dd/yyyy),排序似乎可以很好地表示日期。即使数据集表MyDate列的类型为string(假设我的上述语句是正确的),按日期排序是否始终有效

我上面的两个假设正确吗?

 stream = New System.IO.StringReader(XML data returned from web service)
  With dataset
  .ReadXml(stream)
  dvView = .Tables(0).DefaultView
  dvView.Sort = "ID asc" 'ID is number
  With **datagrid** 'it is DataGrid
        .DataSource = dvView 
        .DataKeyField = "ID" 'this is number
        .DataBind()  
使用以下命令:

DataSet1.ReadXml(stringReader, XmlReadMode.InferTypedSchema);

我正在接收的xml数据中没有包含架构。我的假设正确吗(问题的最后2段?你知道你期望的列是什么吗?如果是,你可能可以手动更改数据列中的类型。如果不正确,我认为你必须在排序表达式中添加一些逻辑来将日期字符串转换为日期时间。