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

时间:2011-08-12 13:50:34

标签: .net asp.net vb.net ado.net

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

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

此外,MyDate标签的日期格式为“01/31/2011”(mm / dd / yyyy),似乎日期排序正在好转。即使数据集表MyDate列的类型为字符串(假设我的上述语句是正确的),按日期排序总是有效吗?

我的两个假设是否正确?

 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()  

1 个答案:

答案 0 :(得分:3)

使用以下内容:

DataSet1.ReadXml(stringReader, XmlReadMode.InferTypedSchema);