gpt4 book ai didi

c# - 无法获取 DataTable 进行排序

转载 作者:行者123 更新时间:2023-11-30 18:02:49 25 4
gpt4 key购买 nike

我正在尝试对 DataTable 进行简单排序,但没有成功。列出了 C# 代码,但需要更正的内容:

using System;
using System.Data;
using System.Xml;

namespace XMLParser
{
internal class Program
{
private static void Main(string[] args)
{
DataTable table = new DataTable();
table.Columns.Add("code", typeof (string));

table.Columns.Add("changePricePercentage", typeof (double));
// Create a new XmlDocument
XmlDocument doc = new XmlDocument();

// Load data
doc.Load(@"C:\Users\ratman\.jstock\1.0.6\Canada\watchlist\My Watchlist\realtimestock.xml");

XmlNodeList nodes = doc.SelectNodes("//org.yccheok.jstock.engine.Stock");
int x = 0;
foreach (XmlElement element in nodes)
{
table.Rows.Add(
element.SelectSingleNode("code").InnerText,
element.SelectSingleNode("changePricePercentage").InnerText);
Console.WriteLine(
"{0}: {1} {2}",
x,
element.SelectSingleNode("code").InnerText,
element.SelectSingleNode("changePricePercentage").InnerText);
++x;
}
Console.ReadKey();

DataTable t = null;
t = table.Copy();
t.DefaultView.Sort = "[" + t.Columns[0].ColumnName + "] asc";

//output to console for debugging
for (int i = 0; i < t.Rows.Count; i++)
{
Console.WriteLine();
for (int j = 0; j < table.Columns.Count; j++)
{
Console.Write(table.Rows[i].ItemArray[j].ToString() + "\t");
}
}

Console.ReadKey();
}
}
}

我到处寻找实际有效但一无所获的好例子。

最佳答案

XmlNodeList nodes = doc.SelectNodes("//org.yccheok.jstock.engine.Stock");

// Dynamically build your data table
DataTable table = new DataTable();
foreach (XmlElement field in nodes[0].SelectNodes(".//*[not(./*)]"))
table.Columns.Add(new DataColumn(field.Name));

// Populate with data
foreach (XmlElement element in nodes)
{
DataRow row = table.NewRow();
foreach (DataColumn column in table.Columns)
row[column.ColumnName] = element.SelectSingleNode("//" +
column.ColumnName).InnerText;
table.Rows.Add(row);
}

// Show sorted results
table.DefaultView.Sort = "code asc";
foreach (DataRowView row in table.DefaultView)
{
foreach (DataColumn column in table.Columns)
Console.WriteLine("{0}: {1}", column.ColumnName, row[column.ColumnName]);
Console.WriteLine();
}

Console.ReadKey();

似乎您排序正确,但仍然从未排序的来源获取行。

关于c# - 无法获取 DataTable 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com