以下代码从 Web 服务获取 xml 数据,然后使用 ReadXml 方法读取数据集。此 Xml 具有每个表行的 ID 和 MyDate 标记(因此 table(0) 将具有 ID 和 MyDate 列),并且此 Xml 数据没有与之关联的架构。第一次加载页面时,它按 ID 按升序排序。它一直工作到 ID 为 999。当下一个 ID 为 1000 时,即使在 ID asc 中,1000 在数据网格中也显示在 999 之前。
我想确认,当使用 ReadXml 加载数据集时,表中的所有列都被视为字符串,即使它们是数字或日期,这就是为什么在 ID asc 顺序中 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()
最佳答案
使用以下内容:
DataSet1.ReadXml(stringReader, XmlReadMode.InferTypedSchema);
关于.net - Dataset.ReadXml() 是否将其表中的所有列数据类型设置为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7041036/