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

时间:2015-06-03 08:25:46

标签: c# sql fusioncharts

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

            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,但我需要它们具有colunname的值。 如何才能显示列的名称?

 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>");

2 个答案:

答案 0 :(得分:2)

您可以使用GetName方法。

  

获取指定列的名称。


string colName = rst.GetName(i);

答案 1 :(得分:1)

为什么要强行打开门? ;)

您可以使用XDocumentXElement类创建名称为datatable列的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>