如何使用 C# 显示 sql table 的列名

How do I display the columnnames of an sql table with C#

我正在使用 Fusionchart 来显示我的数据。所以我创建了一个 stringbuilder,它插入数据。我使用堆叠柱形图,这是一个多系列图表。 这就是我设置 SQL Table.

中写入的值的方式
            while (rst.Read())
        {
            for (int i = 0; i <= seriesQuantity; i++)
            {
                if (i == 0)
                {
                    // Category-stringbuilder
                    stringbuilders[i].AppendFormat("<category label='{0}'/>", rst[0].ToString());
                }
                else
                {
                    stringbuilders[i].AppendFormat("<set value='{0}'/>", rst[i].ToString());
                }
            }
        }

但是还有系列名,我需要设置。我用这段代码来做。现在系列名显示为 1-4,但我需要它们具有列名的值。 如何只显示列名?

 for (int i = 0; i <= seriesQuantity; i++)
        {
            if (i == 0)
            {
                xmlStr.Append("<categories>" + stringbuilders[i].ToString() + "</categories>");
            }
            else
            {
                xmlStr.Append("<dataset seriesName='" + i + "'>" + stringbuilders[i].ToString() + "</dataset>");
            }
        }
        xmlStr.Append("</chart>");

您可以使用GetName方法。

Gets the name of the specified column.


string colName = rst.GetName(i);

为什么要强行敞开大门? ;)

您可以使用 XDocumentXElement class 创建具有数据表列名称的 XML 文档。

看这里:

DataTable dt = new DataTable();
DataColumn dc = new DataColumn("ID", Type.GetType("System.Int32"));
dt.Columns.Add(dc);
dc = new DataColumn("sID", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FirstName", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("LastName", Type.GetType("System.String"));
dt.Columns.Add(dc);

XDocument xDoc = new XDocument();
XElement xRoot = new XElement("Categories");
foreach (DataColumn c in dt.Columns)
{
    xRoot.Add(new XElement("Category", new XAttribute("label", c.ColumnName)));
}

xDoc.Add(xRoot);

结果:

<Categories>
  <Category label="ID" />
  <Category label="sID" />
  <Category label="FirstName" />
  <Category label="LastName" />
</Categories>