C# 如何从SQLServer表生成XML/XSD?

C# 如何从SQLServer表生成XML/XSD?,c#,xml,xsd,dotnetnuke,C#,Xml,Xsd,Dotnetnuke,我正在创建一个DotNetNuke模块,该模块需要从名为salesforders的SQL Server表中读取条目。模块必须仅显示状态为挂起的记录。我需要从我的数据库表中创建一个XML文件,该文件根据上述内容选择记录。在VisualStudio2010中如何实现这一点?我开始使用XMLSchemaExplorer手动创建XSD。不确定这是否是正确的方法?请注意,我需要进行XSL转换,以便使XML文件的内容可用于我的模块,从而允许用户选择给定日期范围内的发票。在该模块中,用户需要为从XML文件读取

我正在创建一个DotNetNuke模块,该模块需要从名为salesforders的SQL Server表中读取条目。模块必须仅显示状态为挂起的记录。我需要从我的数据库表中创建一个XML文件,该文件根据上述内容选择记录。在VisualStudio2010中如何实现这一点?我开始使用XMLSchemaExplorer手动创建XSD。不确定这是否是正确的方法?请注意,我需要进行XSL转换,以便使XML文件的内容可用于我的模块,从而允许用户选择给定日期范围内的发票。在该模块中,用户需要为从XML文件读取的每个发票启用一个复选框,并将其标记为已付款

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


多谢

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

此代码将填充数据表,然后将其写入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;
如果需要,可以使用不同的方法填充数据表。这是一种简单的方法

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

这是否可以“即时”完成,以便始终可以使用一个新的XML文件呢?非常棒的链接。这应该在单独的类文件中完成,还是在ascx.cs文件中完成?谢谢:)如何设置连接到SalesOrderDetail和RecurringSalesOrders?我是创建3个单独的数据表并导出到3个单独的XML领域,还是从SalesOrders创建1个数据表并连接到其他2个表?如果有3个单独的数据表,我是否分别为每个数据表调用WriteXml?