我正在尝试从数据库中检索5列,其中一列是XML类型。返回数据集时,它被视为字符串。我需要将这些值提取为xml并绑定到另一个数据集。
例如:如果我的查询返回5列到数据集,则一列是xml。我需要提取该值并将其作为xml存储到另一个数据集中。
我尝试使用dstDataset.Tables[0][3].toString();
它将整个xml作为字符串返回。现在我需要解析为xml并绑定到另一个数据集。
我希望你能得到我的问题。
答案 0 :(得分:1)
看看以下代码:
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);
string xmlData = "<XmlDS><table1><col1>Value1</col1></table1><table1><col1>Value2</col1></table1></XmlDS>";
System.IO.StringReader xmlSR = new System.IO.StringReader(xmlData);
dataSet.ReadXml(xmlSR, XmlReadMode.IgnoreSchema);
如果将xmlData替换为列中的数据并确保架构正确,则应该有效。
答案 1 :(得分:0)
也许你可以使用:
using System.Xml.Linq;
(...)
XDocument xmlXDoc = XDocument.Parse(dstDataset.Tables[0][3].toString());
然后您可以使用以下命令获取XML:
xmlXDoc.ToString()
或者,如果您喜欢它而没有格式化(缩进的XML):
xmlXDoc.ToString(SaveOptions.DisableFormatting)
有关LINQ to XML的更多信息:http://msdn.microsoft.com/en-us/library/bb387044.aspx