今天需要把DataReader中的数据一条条的读取出来,然后以XML的形式生成为Excel格式导出!
使用DataReader读取的方法:
代码如下:
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Data.SqlClient; public partial class DataReader : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string sConnectionString = @"server=AYANG\SQL2005;database=forum;Trusted_Connection=True"; using (SqlConnection conn = new SqlConnection(sConnectionString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand("Select * from tbClass;Select * from tbBoard", conn)) { using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) //得到一个DataREeader { if (dr.HasRows) //记录集是否为空 { do { System.Text.StringBuilder htmlStr = new System.Text.StringBuilder(); //使用StringBuilder构造字符串效率比较高 htmlStr.Append("<table border='1' cellPadding='5' cellSpacing='0' style='font-size:9pt; font:宋体'");//表格开始 htmlStr.Append("<tr style='background-color='#F0F'>"); //表头开始 for (int i = 1; i < dr.FieldCount; i++) { htmlStr.Append(string.Format("<td><b>{0}</b></td>", dr.GetName(i))); //构造表头 } htmlStr.Append("</tr>");//表头开始 while (dr.Read()) { htmlStr.Append("<tr>");//记录开始 for (int i = 0; i < dr.FieldCount; i++) { if (!dr.IsDBNull(i)) htmlStr.Append(string.Format("<td>{0}</td>", dr.GetValue(i))); //构造记录行 } htmlStr.Append("</tr>");//表头开始 } htmlStr.Append("</table><br>");//表头开始 Response.Write(htmlStr); } while (dr.NextResult()); } } } } } }
以上只是一个简单的例子,可以根据自己的需求来更改实现的功能~比如提取数据生成XML然后生成Excel