如何将完整的SQL表导出到XML

我的主要编码理想是在.net应用程序上。所以我在应用程序设计方面的技能有限。

我试图将整个表从数据库(使用视图)导出到XML文件(然后希望将其导出到电子表格 – 我看起来并且找不到直接的方法)。

我使用以下代码成功地只将1列导出到xml文件:

DataConn.UserName = "***"; DataConn.Password = "***"; DataConn.SqlServer = "***"; DataConn.Database = "***"; const string strSql = "SELECT TOP 1 * FROM vwGetStaffDetails FOR XML AUTO"; using (SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text }) { string result = sqlComm.ExecuteScalar().ToString(); File.WriteAllText(@"C:\Temp\text.xml", result); } 

每当我使用ExecuteReaderExecuteXmlReader ,我都没有得到任何实际结果。

我怎么能得到所有的田地?

编辑:我必须使用Top 1来使Execute Scalar运行良好。

使用以下解决方案,我的文件显示:

    <vwGetStaffDetails ImageLoc="****.jpg" LName="GAINES" FName="****" StaffTitle="****" JobPosition="****" Email="***@***.com" Code="***" Number="******" PhoneTypeID="1"/> 

这是写作< 等而不是适当的XML。 有什么方法可以解决它吗?

您可以使用SqlDataAdapterSystem.Data.DataSet来加载DataTable ,它将写入XML。

 const string strSql = "SELECT * FROM vwGetStaffDetails"; using (SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text }) { SqlDataAdapter da = new SqlDataAdapter(sqlComm); DataSet ds = new DataSet(); da.Fill(ds); ds.Tables[0].WriteXml(@"C:\Temp\text.xml"); } 

编辑使用此方法,您将从SQL中删除XML代码,并让.NET转换所有内容。 我已经更改了SQL命令以反映这一点。

您可能想看看如何编写输出为XML的查询。
关于这一点,互联网上有很多例子和教程。 这个http://msdn.microsoft.com/en-us/library/bb510462.aspx就是其中之一。

如果我没有弄错,返回的输出应该是一个包含完整XML内容的字符串。