【问题标题】:how can i get a sql xml saved file using c#?如何使用 c# 获取 sql xml 保存的文件?
【发布时间】:2014-02-28 01:56:19
【问题描述】:

我有这个存储过程,它工作正常

alter PROC DBXMLSTRUCT 
AS
BEGIN
DECLARE @xmlStr XML;
set @xmlStr =
(select '[Stok]' [@DataBaseName],
(select t.table_name [@TableName],
(select c.COLUMN_NAME [@ColumnName] 
from INFORMATION_SCHEMA.COLUMNS c
where c.TABLE_NAME = t.TABLE_NAME
for xml path('Column'), type)
from INFORMATION_SCHEMA.TABLES t
for xml path('Table'), type)
for xml path('DataBase'),type)
SELECT @xmlStr = BulkColumn FROM OPENROWSET(BULK 'D:\XMLDBStruct.xml', SINGLE_CLOB) as XMLDBStruct(BulkColumn)

SELECT @xmlStr
END

如何使用 c# 获取这个保存的 xml 文件
但通过特殊方式,它会返回一个漂亮的 xml 文档,就像 sql server 中的一样

【问题讨论】:

标签: c# sql xml


【解决方案1】:

只需将结果写入文件即可。您已经返回格式化的 xml

XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xml);
xdoc.Save("myfilename.xml");

【讨论】:

    【解决方案2】:
     using (SqlConnection conn = new SqlConnection(con))
        {
            XDocument results = new XDocument(
           new XElement("results"));
    
            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "MyStoredProc";
                conn.Open();
                var count = 0;
                using (XmlReader reader = cmd.ExecuteXmlReader())
                {
    
                    while (reader.Read())
                    {
    
                        results.Root.Add(XElement.Parse(reader.ReadOuterXml()));
                        count += 1;
    
                    }
                }
    
                return results.ToString();
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2021-09-19
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多