【发布时间】:2016-06-05 06:54:48
【问题描述】:
我需要在我的 SQL Server DB 上存储同一列中的许多记录,为此我使用 XML 字段。在后端,我有读取/写入 xml 记录并将数据插入表中的代码。表是大小可变。我在从表中读取字段并将它们插入 xml 变量时遇到问题。 我需要得到的是:
<BigTag>
<SmallTagName1> something</SmallTagName1>
<SmallTagName2> thanksForanswering</SmallTagName2>
<SmallTagName3> youareawesome</SmallTagName3>
</BigTag>
表格是:
smalltagTable[] = {something,thanksForanswering,youareawesome,....}
这是我的代码:
XElement WidgetListE1 = null;
WidgetListE1 = new XElement("BigTag" );
string smalltagname = "smalltag ";
string smalltagdata;
for(int i=0;i<smalltagTable.Length; i++ )
{
SmallTagname = "smallTagName " + i;
smalltagdata = smalltagTable[i];
WidgetListE1.Add(new XElement(smallTagName.ToString(),SmalltagData.ToString() ));
}
string a2 = WidgetListE1.ToString();
问题是这段代码遇到了错误:
' ' 字符,十六进制值 0x20,不能包含在名称中。 就行了:
WidgetListE1.Add(new XElement(smallTagName.ToString(),SmalltagData.ToString() ));
【问题讨论】:
-
这个 sn-p 不从数据库中读取数据。什么是实际问题?如何从 SQL Server 表中读取 XML 字段,或者如何从字符串数组构造 XML 字符串?
-
你的问题到底是什么?
-
PS SQL Server 已经有一个 XML 类型。不过,发布的 XML sn-p 可能是一个糟糕的选择,因为标签元素不同。最好使用相同的标签名称,即
smallTagName并存储已排序的字段(XML 保留顺序)或添加order属性。否则,您将需要不同的代码来读取 Tag1、Tag2、Tag3 等 -
请问您是在
sqlserver中存储数据,那么提取数据到xml的目的是什么? -
错误很明显 - 它不喜欢标签名称中的空格。您不能在标签的名称中包含空格——它们不会与没有值的属性不同,例如。在任何情况下,如果你的 field 是 XML,你不需要构造任何东西。