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

idoloveyou 2004-06-21 11:38:33
如果select出来的是多条记录,则整个XML没有跟元素,不能放到XML控件中显示,请问怎么办?
...全文
87 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;
}
}

110,567

社区成员

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

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

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