Как создать XML / XSD из таблицы SQL Server? - PullRequest
1 голос
/ 23 марта 2012

Я создаю модуль DotNetNuke, который должен читать записи из таблицы SQL Server с именем SalesOrders.Модуль должен отображать только те записи, где STatus = Pending.Мне нужно создать файл XML из моей таблицы базы данных, которая выбирает записи в соответствии с приведенным выше.Как это делается в Visual Studio 2010?Я начал использовать XML Schema Explorer для создания XSD вручную.Не уверен, что это правильный подход?Обратите внимание, что мне нужно будет выполнить XSL-преобразование, чтобы я мог сделать содержимое XML-файла доступным для моего модуля, чтобы я мог позволить пользователю выбирать Счета-фактуры в заданном диапазоне дат.В модуле пользователю необходимо включить флажок для каждого счета, считанного из файла XML, и пометить его как оплаченный.

Использую ли я правильный подход к созданию XSD вручную или есть более автоматизированный подход?

Большое спасибо !!

Ответы [ 3 ]

2 голосов
/ 23 марта 2012

Этот код заполнит таблицу данных и запишет ее в строку XML:

    DataTable dt = new DataTable();
    using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connection"].ConnectionString))
    {
        connection.Open();

        System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
        command.Connection = connection;

        command.CommandText = @"SELECT * FROM  SalesOrders WHERE STatus = 'Pending'";

        System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(command);
        adapter.Fill(dt);
    }
    MemoryStream ms = new MemoryStream();
    dt.WriteXml(ms, XmlWriteMode.IgnoreSchema);
    ms.Seek(0, SeekOrigin.Begin);
    StreamReader sr = new StreamReader(ms);
    string xml = sr.ReadToEnd();
    ms.Close();
    return xml;

Вы можете использовать различные методы для заполнения таблицы данных, если хотите

0 голосов
/ 23 октября 2012

Это простой способ.

DECLARE @xmlDoc XML
SET @xmlDoc =
  (
      SELECT * from Employees where EmployeeID IN     (7032,7478,6967,6862,6861,7469,6947,6951,7009,7010)
      FOR XML AUTO, ELEMENTS, BINARY BASE64
  )
SELECT @xmlDoc
0 голосов
/ 23 марта 2012

Создайте DataTable из таблицы SQL Server, а затем используйте, а затем используйте DataTable.WriteXml для экспорта данных в XML файл.

...