请问用SELECT ... FOR XML选出的记录,如何添加一个根元素?

idoloveyou 2004-06-21 11:38:33
如果select出来的是多条记录,则整个XML没有跟元素,不能放到XML控件中显示,请问怎么办?
...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chimeny 2004-07-09
  • 打赏
  • 举报
回复
Mark
zljblue 2004-06-21
  • 打赏
  • 举报
回复
楼上的厉害
jiezhi 2004-06-21
  • 打赏
  • 举报
回复
sql语句都是 for xml ...的形式
方法1:
public string GetXmlStr(string Sql)
{
try
{
XmlTextReader reader = ExeXmlReader(Sql);
StringBuilder xml = new StringBuilder();
xml.Append(reader.GetRemainder().ReadToEnd());
reader.Close();
return "<Data>"+xml.ToString()+"</Data>";
}
catch(Exception ee)
{
return ee.Message;
}

}

方法2:
public string GetXMLStr(string Sql)
{
try
{
SqlDataReader objDataReader = ExeReader(Sql);
StringBuilder xml = new StringBuilder(8192);
// 不断从数据阅读器中获取XML数据并添加到StringBuilder对象中
while (objDataReader.Read())
{
if (!objDataReader.IsDBNull(0))
xml.Append(objDataReader.GetString(0));
}

objDataReader.Close();
string strOutXML = "<Data>"+xml.ToString()+"</Data>";
return strOutXML;
}
catch(System.Exception e1)
{
return e1.Message;
}
}

方法3:sql语句不是for xml格式的,而是普通的查询
public virtual string GetXml(string strSql,string NodeName)
{
try
{
DataSet myDataSet=new DataSet();
using(DataAccess myDA = new DataAccess())
{
myDataSet = myDA.ExeDataSet(strSql);
myDataSet.DataSetName = "Data";
myDataSet.Tables[0].TableName = NodeName;
return myDataSet.GetXml ().ToString ();
}
}
catch(System.Exception e1)
{
strErrorDesc = e1.Message ;
return "<ErrorDescription>"+strErrorDesc+"</ErrorDescription>";
}
}

公共方法:
ExeDataSet--执行sql返回一个DateSet
ExeReader --执行sql返回一个SqlDataReader
public SqlDataReader ExeReader(string Sql)
{
try
{
SqlCommand Cmd = new SqlCommand(Sql,sqlConn);
return Cmd.ExecuteReader();
}
catch(Exception ee)
{
throw ee;
}
}
public DataSet ExeDataSet(string Sql)
{
try
{
DataSet myDataSet = new DataSet();
SqlDataAdapter dataAdapter = new SqlDataAdapter(Sql,sqlConn);
SqlCommandBuilder myCmdBu = new SqlCommandBuilder(dataAdapter);
dataAdapter.Fill(myDataSet);
return myDataSet;
}
catch(Exception ee)
{
throw ee;
}
}
源码下载地址: https://pan.quark.cn/s/40677b766bda "ContextCapture 倾斜摄影快速、创新及全面空三建模与单机集群硬件部署方案2018" 此资源聚焦于倾斜摄影(ContextCapture)空三建模及单机集群硬件部署方案,致力于为用户呈现最快、最优成本效益的台式工作站、移动工作站、并行集群的多样化部署选择。以下是该资源的详细知识点概述: 一、相关设备型号说明 * UltraLAB 是西安坤隆计算机科技有限公司推出的专属图形工作站品牌,具备三大卓越优势:顶尖的计算硬件架构、精准的行业应用定制服务、专业的硬件系统优化工艺。 二、硬件部署方案 * 台式工作站部署建议:设备特色在于当前市场上最快的台式计算架构,适用于办公场景下,部门层级常规的倾斜摄影空三处理、三维建模。 * 便携式工作站部署建议:设备特色在于当前市场上最快的移动计算架构,适用于移动倾斜摄影的空三处理、三维建模工作站。 * 大数据量处理工作站推荐:设备特色在于极限自动超频加速与16个并行存储构造,具备空三处理和三维建模最强的计算性能及海量高速并行存储性能。 * 多设备并行计算集群部署建议:针对海量图像数据计算产生的巨大需求,单机计算能力处理时间过长,效率不高,通过多台机器并行集群,进行空三处理、三维建模,显著减少处理时间。 三、部署方案深入解析 * 2.1 倾斜摄影建模(台式工作站)部署方案:设备特色在于最高的计算处理能力~6核5.2GHz,内存最大配置可达64GB,配备最新图灵架构的RTX显卡,相比市场其他品牌机器(单CPU、双Xeon处理器)更快、更具成本效益。 * 2.2 倾斜摄影建模(移动便携式工作站)硬件部署方案:设备特色在于最高的计算处理能力~6...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧