Выгрузка из mysql в xml

210
16 июня 2017, 07:17

Каким образом можно выгрузить информацию из разных таблиц в один xml файл?

Конечно я знаю, что нужно делать второй запрос к другой таблице, но придется закрыть тогда DataReader, а дальше уже ума не приложу , как лучше реализовать. Конечно можно было бы entity сделать, но так же без понятия каким образом можно выгружать информацию.

Пользуюсь - MySQL connector.

string documents = "Select * from documents where id > 716";
MySqlConnection mysql_connection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(documents, mysql_connection);        
mysql_connection.Open();
MySqlDataReader mysql_result;    
mysql_result = myCommand.ExecuteReader();
int i = 0;
while (mysql_result.Read())    
{
    i++;    
    XDocument xdoc = new XDocument();    
    XElement doc = new XElement("doc");
    xdoc.Add(doc);
    XElement news = new XElement("news", mysql_result.GetString("news"));
    doc.Add(news);
    XElement catl = new XElement("catl", mysql_result.GetString("catl"));      //вытаскивается только id столбца и тут как раз таки в этом теге понадобится     выгрузка из другой таблицы
    doc.Add(catl);
    xdoc.Save(i+"doc.xml");
}
mysql_result.Close();
mysql_connection.Close();
Answer 1

Не совсем понятно, а что мешает написать 1 select запрос, который вам выдаст сразу все необходимые данные? (структуры таблиц не знаю, пишу случайные имена полей)

string documents = "Select t1.doc, t1.news , t2.Name as catl
                    from document t1, catalog t2 
                    where t1.catl = t2.id" ;
MySqlConnection mysql_connection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(documents, mysql_connection);        
mysql_connection.Open();
MySqlDataReader mysql_result;    
mysql_result = myCommand.ExecuteReader();
int i = 0;
while (mysql_result.Read())    
{
 i++;    
 XDocument xdoc = new XDocument();    
 XElement doc = new XElement("doc");
 xdoc.Add(doc);
 XElement news = new XElement("news", mysql_result.GetString("news"));
 doc.Add(news);
 XElement catl = new XElement("catl", mysql_result.GetString("catl"));      
 doc.Add(catl);
 xdoc.Save(i+"doc.xml");
}
mysql_result.Close();
mysql_connection.Close();
READ ALSO
ASP.NET CORE. Выйти со всех клиентов если изменились данные пользователя

ASP.NET CORE. Выйти со всех клиентов если изменились данные пользователя

Необходимо, чтобы если у пользователя изменилось имя, email или пароль произошел выход со всех других устройствПолагаю, что это можно сделать...

188
Можете объяснить суть invoke

Можете объяснить суть invoke

Есть основной поток, в котором я создаю все Controls в winformsИ есть второй поток, который вызывается через срабатывание события

306
Как задать свой путь cahe path selenium webdriver firefox c#

Как задать свой путь cahe path selenium webdriver firefox c#

Мне нужно, чтоб при повторном заходе кэш (куки и тп) загружался заного Пытался так :

262
Сложение(+) в JavaScript

Сложение(+) в JavaScript

Здравствуйте, при скрипте:

378