如果用
SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=1;database=Northwind;");
SqlCommand cmd = new SqlCommand("SELECT EmployeeID,LastName FROM Employees for xml auto", conn);
conn.Open();
string s = cmd.ExecuteScalar().ToString();
conn.Close();
我句的效率可能会比较差,因为返回的字符串里包含了好多重复的架构,如果SQL服务器和WEB服务器分离,这个是很不利的.
请教大家如何构建XML格式数据
SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=1;database=Northwind;");
SqlCommand cmd = new SqlCommand("SELECT EmployeeID,LastName FROM Employees for xml auto", conn);
conn.Open();
string s = cmd.ExecuteScalar().ToString();
conn.Close();
我句的效率可能会比较差,因为返回的字符串里包含了好多重复的架构,如果SQL服务器和WEB服务器分离,这个是很不利的.
请教大家如何构建XML格式数据
解决方案 »
- 求大神帮忙!添加数据显示滚动条的问题
- lucene.net搜索数据库的东西
- 向google提交.net网站的sitemap 老提示这个错误,晕了,都提交N次了还是一样
- 如何把SQL2005的WINDOWS登陆方式改成SQL登陆方式
- 请教个关于asp.net控件的问题
- Dropdownlist问题求解,在线等~
- RegularExpressionValidator 判断输入框 txtZumenmeisyo 的输入是否超过指定长度,正则表达是该怎么写
- 又是datagrid
- 请问怎样用按钮关闭一个网页和怎样使控件获得焦点.
- TreeView控件中如何得到节点的名称,以及父,子节点的名称??
- https的问题
- TreeView控件,在2003和XP下可以正常显示,为什么在win2000下就显示不出来?
www.webdiyer.com
{
return SqlHelper.ExecuteDataset("server=.;uid=sa;pwd=1;database=Northwind;", CommandType.Text, "select * from Employees").Tables[0];
} /// <summary>
/// 功能说明:将DataTable手工转换成XML字符串
/// </summary>
/// <param name="dataTable">传入的DataTable对象</param>
/// <returns>XML字符串</returns>
public static string DataTableToXmlString(DataTable dataTable)
{
StringBuilder stringBuilder = new StringBuilder();
foreach(DataRow dataRow in dataTable.Rows)
{
stringBuilder.AppendFormat ("<{0}>\n", HttpUtility.HtmlEncode(dataTable.TableName));
stringBuilder.Append(DataRowToXmlString(dataRow));
stringBuilder.AppendFormat ("</{0}>\n", HttpUtility.HtmlEncode(dataTable.TableName));
}
return stringBuilder.ToString();
}
/// <summary>
/// 功能说明:将一个DataRow转换成Xml字符串
/// </summary>
/// <param name="dataTable">传入的DataRow对象</param>
/// <returns>XML字符串</returns>
private static string DataRowToXmlString(DataRow dataRow)
{
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0; i<= dataRow.Table.Columns.Count - 1;i++)
{
if (dataRow[i].ToString() == string.Empty)
{
stringBuilder.AppendFormat("<{0}/>\n",System.Web.HttpUtility.HtmlEncode(dataRow.Table.Columns[i].ColumnName));
}
else
{
stringBuilder.AppendFormat("<{0}>{1}</{0}>\n",HttpUtility.HtmlEncode(dataRow.Table.Columns[i].ColumnName),HttpUtility.HtmlEncode(dataRow[i].ToString()));
}
}
return stringBuilder.ToString();
}
{
//ServerTran();
Client();
} private void ServerTran()
{
string s = DataTableToXmlString(getdata1());
Response.Write(TransformXmlToHtml(makexml(s), HttpContext.Current.Server.MapPath("default.xslt")));
} /// <summary>
/// 将XML字符串和XSL文件转化为html字符串
/// </summary>
/// <param name="xmlStr">XML字符串</param>
/// <param name="xslFile">XSL文件</param>
/// <returns>HTML String</returns>
/// <res> jChen 2001-10-10 ***** </res>
public static string TransformXmlToHtml(string XmlString, string XslFile)
{
StringReader xml = new StringReader(XmlString);
XPathDocument xmlDoc = new XPathDocument(xml);
XslTransform xsl = new XslTransform();
xsl.Load(XslFile);
StringWriter html = new StringWriter();
xsl.Transform(xmlDoc,null,html);
return html.ToString();
} private string makexml(string s)
{
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
sb.Append("<?xml-stylesheet type=\"text/xsl\" href=\"default.xslt\"?>\r\n");
sb.Append("<root>\r\n");
sb.Append(s);
sb.Append("</root>\r\n");
return sb.ToString();
} private void Client()
{
Response.ContentType = "text/xml";
string s = DataTableToXmlString(getdata1());
Response.Write(makexml(s));
} private DataTable getdata1()
{
return SqlHelper.ExecuteDataset("server=.;uid=sa;pwd=123123;database=Northwind;", CommandType.Text, "select * from Employees").Tables[0];
} /// <summary>
/// 功能说明:将DataTable手工转换成XML字符串
/// </summary>
/// <param name="dataTable">传入的DataTable对象</param>
/// <returns>XML字符串</returns>
public static string DataTableToXmlString(DataTable dataTable)
{
StringBuilder stringBuilder = new StringBuilder();
foreach(DataRow dataRow in dataTable.Rows)
{
stringBuilder.AppendFormat ("<{0}>\n", HttpUtility.HtmlEncode(dataTable.TableName));
stringBuilder.Append(DataRowToXmlString(dataRow));
stringBuilder.AppendFormat ("</{0}>\n", HttpUtility.HtmlEncode(dataTable.TableName));
}
return stringBuilder.ToString();
}
/// <summary>
/// 功能说明:将一个DataRow转换成Xml字符串
/// </summary>
/// <param name="dataTable">传入的DataRow对象</param>
/// <returns>XML字符串</returns>
private static string DataRowToXmlString(DataRow dataRow)
{
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0; i<= dataRow.Table.Columns.Count - 1;i++)
{
if (dataRow[i].ToString() == string.Empty)
{
stringBuilder.AppendFormat("<{0}/>\n",System.Web.HttpUtility.HtmlEncode(dataRow.Table.Columns[i].ColumnName));
}
else
{
stringBuilder.AppendFormat("<{0}>{1}</{0}>\n",HttpUtility.HtmlEncode(dataRow.Table.Columns[i].ColumnName),HttpUtility.HtmlEncode(dataRow[i].ToString()));
}
}
return stringBuilder.ToString();
}