以下是从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()
答案 0 :(得分:3)
使用以下内容:
DataSet1.ReadXml(stringReader, XmlReadMode.InferTypedSchema);