Предположим, у меня есть следующий xml.Linq to xml: общий подход
<?xml version="1.0" encoding="utf-8"?>
<importing>
<table name="Product">
<records>
<record>
<field name="Id" value="1"/>
<field name="Description" value="iPhone"/>
</record>
<record>
<field name="Id" value="2"/>
<field name="Description" value="iPad"/>
</record>
</records>
</table>
<table name="Car">
<records>
<record>
<field name="Id" value="1"/>
<field name="Name" value="Freelander"/>
<field name="Brand" value="Land rover"/>
</record>
<record>
<field name="Id" value="2"/>
<field name="Name" value="Evoque"/>
<field name="Brand" value="Land Rover"/>
</record>
</records>
</table>
</importing>
Я пытаюсь реализовать 3 часа безуспешно, чтобы вставить в базу данных через этот xml. Я получил через код ниже результаты, прокомментированные в коде.
var filePath = "C:\\xml.xml";
XElement xml = XElement.Load(filePath);
foreach (var t in xml.Descendants("table"))
{
var tableName = t.Attribute("name").Value;
var columns = t.Descendants("field").Select(c=>c.Attribute("name").Value).Distinct();
var values = t.Descendants("field").Select(c=>c.Attribute("value").Value);
var command = String.Format("insert into {0} ({1}) values ('{2}')",
tableName,
String.Join(",",columns),
String.Join(",",values));
Console.WriteLine(command);
//First pass: insert into Product (Id,Description) values ('1,iPhone,2,iPad')
//Second pass: insert into Car (Id,Name,Brand) values ('1,Freelander,Land rover,2,Evoque,Land Rover')
}
Я сожалею, если это тупой пост, но я не мог разорвать этот ... Как я могу построить команду Проппер?
Заранее спасибо.
Где проблема? Вызывается ли какое-либо исключение? Что не работает, импорт xml или вход в базу данных? – webber2k6