如何使用 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);
为什么要强行敞开大门? ;)
您可以使用 XDocument
、XElement
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>
我正在使用 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);
为什么要强行敞开大门? ;)
您可以使用 XDocument
、XElement
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>