我正在创建一个DotNetNuke模块,它需要从一个名为SalesOrders的SQL Server表中读取条目。该模块只能显示STatus = Pending的那些记录。我需要从我的数据库表中创建一个XML文件,以选择上面的记录。在Visual Studio2010中如何做到这一点?我开始使用XML Schema Explorer手动创建XSD。不确定这是不是正确的方法?注意,我需要进行XSL转换,以便使XML文件的内容可供模块使用,以便允许用户在给定的日期范围内选择发票。在该模块中,用户需要为从XML文件读取的每个发票启用一个复选框,并将其标记为已支付。
相对于手动创建XSD,我采取的是正确的方法吗?还是有一种更自动化的方法?
非常感谢!
发布于 2012-03-23 16:08:25
此代码将填充datatable,然后将其写入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;
如果需要,可以使用不同的方法填充datatable
发布于 2012-03-23 14:54:56
从SQL Server表中创建一个DataTable
,然后使用DataTable.WriteXml将数据导出到XML
文件。
发布于 2012-10-23 04:13:22
这是一种简单的方法。
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
https://stackoverflow.com/questions/9834983
复制相似问题