Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ASP.NET中的SQL查询填充XML的最佳方法?_Asp.net_Sql_Xml - Fatal编程技术网

从ASP.NET中的SQL查询填充XML的最佳方法?

从ASP.NET中的SQL查询填充XML的最佳方法?,asp.net,sql,xml,Asp.net,Sql,Xml,我需要创建一个服务,该服务将返回包含数据库数据的XML。因此,我正在考虑使用ASHX,它将接受日期范围之类的内容,并将XML文件发回。我曾经处理过从SQLServer中提取数据并填充到datagrid中进行可视化显示的页面,但从未处理过XML中进行交付的页面,最好的方法是什么?另外,如果ASHX和POST不是最好的交付方式,请告诉我。。。谢谢 编辑:这些答案很好,为我指明了正确的方向。我还应该提到,XML格式已经确定,所以我不能使用任何自动生成的格式。您尝试过吗 您可以将其作为web服务调用的输

我需要创建一个服务,该服务将返回包含数据库数据的XML。因此,我正在考虑使用ASHX,它将接受日期范围之类的内容,并将XML文件发回。我曾经处理过从SQLServer中提取数据并填充到datagrid中进行可视化显示的页面,但从未处理过XML中进行交付的页面,最好的方法是什么?另外,如果ASHX和POST不是最好的交付方式,请告诉我。。。谢谢

编辑:这些答案很好,为我指明了正确的方向。我还应该提到,XML格式已经确定,所以我不能使用任何自动生成的格式。

您尝试过吗

您可以将其作为web服务调用的输出。

您试过了吗


您可以将其作为web服务调用的输出。

您可以将其获取到datatable,然后调用myTable.WriteXML()


若您正在用数据库结果填充类,那个么将serializable属性添加到类的标题中,并使用XMLSerializer,您可以将其获取到datatable中,然后调用myTable.WriteXML()


若要用数据库结果填充类,那个么将serializable属性添加到类的标题中,并使用XMLSerializer,Sql Server 2005及更高版本有一个“FOR XML AUTO”命令,该命令将记录集转换为XML。然后,您只需从ASHX返回一个字符串。

SQLServer2005及更高版本有一个“FORXMLAUTO”命令,可以将您的记录集转换为XML。然后您只需要从ASHX返回一个字符串。

从SQL Server 2000开始,您可以以XML形式返回查询结果。要绝对控制它们,请使用“For XML EXPLICIT”命令。你可以用任何你想要的格式


这就像将结果写入原始输出一样简单。对于添加的点,您可以将结果集返回到
XPathDocument
,通过XSL转换,并以您选择的任何格式发送结果(可能只需单击按钮即可发送HTML与XML)。

从SQL Server 2000开始,您可以将查询结果返回为XML。要绝对控制它们,请使用“For XML EXPLICIT”命令。你可以用任何你想要的格式


这就像将结果写入原始输出一样简单。对于添加的点,您可以将结果集返回到
XPathDocument
,通过XSL转换,并以您选择的任何格式发送结果(可能只需单击按钮即可发送HTML与XML)。

将Linq2Sql与XElement类相结合,大致如下:

var xmlContacts =
      new XElement("contacts",
         (from c in context.Contacts
         select new XElement("contact",
            new XElement
            {
               new XElement("name", c.Name), 
               new XElement("phone", c.Phone),
               new XElement("postal", c.Postal)
            )
         )
         ).ToArray()
      )
   );

Linq2sql将在对db的一次调用中检索数据,XML的处理将在业务服务器上完成。这可以更好地分割负载,因为您没有让sql server完成所有的工作。

将LINQ2Sql与XElement类相结合,大致如下:

var xmlContacts =
      new XElement("contacts",
         (from c in context.Contacts
         select new XElement("contact",
            new XElement
            {
               new XElement("name", c.Name), 
               new XElement("phone", c.Phone),
               new XElement("postal", c.Postal)
            )
         )
         ).ToArray()
      )
   );

Linq2sql将在对db的一次调用中检索数据,XML的处理将在业务服务器上完成。这可以更好地分割负载,因为您没有让sql server完成所有工作。

将自动生成的格式转换为指定格式是xslt的工作。只需找到一种通过xslt过滤器运行工具输出的方法

Oracle有一个很好的产品来完成这项工作—Oracle XDK。但据我所知,它是java的东西,而不是ASP

例如,这个XHTML

由oracle生成的XML自动生成


当然,您所追求的不是XHTML,而是其他一些XML格式。但是XSLT将完成这项工作。

将自动生成的格式转换为指定格式是XSLT的工作。只需找到一种通过xslt过滤器运行工具输出的方法

Oracle有一个很好的产品来完成这项工作—Oracle XDK。但据我所知,它是java的东西,而不是ASP

例如,这个XHTML

由oracle生成的XML自动生成


当然,您所追求的不是XHTML,而是其他一些XML格式。但是XSLT将完成这项工作。

我在谷歌上搜索了linq2sql,所有的结果都显示,与。。。与……有关的问题。。。问题等等,但我没有找到任何可以下载任何库的官方网站,这是内置于ASP.NET还是什么?@Ryan这是.NET 3.5的一部分,请查看这9部分系列:---另请看:我在谷歌搜索了linq2sql,所有结果都说,有问题。。。与……有关的问题。。。问题等等,但我没有找到任何可以下载任何库的官方网站,这是内置于ASP.NET还是什么?@Ryan这是.NET 3.5的一部分,请查看这9个部分的系列:---另请参阅: