下面的代码从表中提取数据,并为您提供了一个XmlDocument:
using (SqlCommand command = CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = "SELECT * FROM SOME_TABLE FOR XML AUTO, ELEMENTS, ROOT('SomeEntities')";
var xmlReader = command.ExecuteXmlReader();
var xmlDoc = new XmlDocument();
xmlDoc.Load(xmlReader);
}
为您提供这样的数据的XML表示,例如:
<SomeEntities>
<Entity>
<SomeKey>123<SomeKey/>
<SomeValue>TestString<SomeValue/>
<Entity/>
<SomeEntities/>
哪个好,但有没有办法对同一整行采用相同的XML表示,并将其重新插入数据库?
MSDN说FOR XML
可以使用INSERT
,但没有提供任何示例,也许我使用了错误的搜索字词,但似乎没有太多关于此的内容。这似乎是你能做的事情,对吗?
有什么想法?很高兴提供更多代码或尝试创意,只需评论:)
答案 0 :(得分:1)
没有自动的方法来实现这一目标。事实上,XML是非常通用的,并且几乎可以在任何结构和嵌套中携带几乎任何类型的数据。工具应该如何自动知道该做什么?
一些建议
1)您可以创建一个架构(XSD)并从中创建DataSet
。使用结构上合适的DataSet,可以很容易地用XML“填充”它,然后使用DataSet的功能。
2)创建一个存储过程,将XML作为参数传递。此SP将读取数据并正确插入。
3)在C#中编写一些代码以达到你想要的效果。