如何从SQL Server表生成XML / XSD?

时间:2012-03-23 06:24:45

标签: c# xml xsd dotnetnuke

我正在创建一个DotNetNuke模块,需要从名为SalesOrders的SQL Server表中读取条目。模块必须只显示STatus = Pending的记录。我需要从我的数据库表创建一个XML文件,用于选择上面的记录。如何在Visual Studio 2010中完成?我开始使用XML Schema Explorer手动创建XSD。不确定这是否正确?请注意,我需要进行XSL转换,以便我可以将XML文件的内容提供给我的模块,以便我可以允许用户在给定的日期范围内选择发票。在该模块中,用户需要为从XML文件读取的每个发票启用复选框,并将其标记为已付款。

我是否采取了相对于手动创建XSD的正确方法,还是采用了更自动化的方法?

非常感谢!!

3 个答案:

答案 0 :(得分:2)

此代码将填充数据表,然后将其写入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;

如果需要,可以使用不同的方法填充数据表

答案 1 :(得分:0)

从SQL Server表创建DataTable,然后使用DataTable.WriteXml将数据导出到XML文件。

答案 2 :(得分:0)

这是一种简单的方法。

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