日期:2014-05-17  浏览次数:20429 次

导出查询结果,有问题的。
本帖最后由 woyaodubo 于 2014-01-01 15:17:48 编辑
我是根据下拉列表的查询条件来导出数据的,先把数据存放到Temp文件夹下,然后去读它。
Temp下面的表格得到的数据是我需要的,但是保存下来的表格确是一堆没有经过查询的数据(所有数据都出来了,还包括Gridview的header背景,实在惨不忍睹。)。

明明暂存文件夹Temp下已经把数据写入了Excel,怎么读取的结果会是另外一个呢?


        protected void Export_Click1(object sender, EventArgs e)
        {


            sql11 = "select * ....";

            SqlConnection mycon = da.sqlcon;
            SqlDataAdapter sqlcmd = new SqlDataAdapter(sql11, mycon);
            DataSet ds = new DataSet();  //将查询结果放到DataSet数据集中
            sqlcmd.Fill(ds, "Photo");  //这个Photo是ds名称,并不是数据表名,可以随便填,但为了方便,一般都用数据表名。
            DataTable DT = ds.Tables[0];
            //生成将要存放结果的Excel文件的名称
            string NewFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
            //转换为物理路径
            NewFileName = Server.MapPath("../Temp/" + NewFileName);
            //根据模板正式生成该Excel文件
            File.Copy(Server.MapPath("../PeaceScore_End.xls"), NewFileName, true);
            //建立指向该Excel文件的数据库连接
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NewFileName + ";Extended Properties='Excel 8.0;'";
            OleDbConnection Conn = new OleDbConnection(strConn);
            //打开连接,为操作该文件做准备
            Conn.Open();
            //OleDbCommand Cmd = new OleDbCommand("", Conn);
            string XSqlString;
            foreach (DataRow DR in DT.Rows)
            {
                XSqlString = "insert into [Sheet1$]";
                XSqlString += "([登录名],[成绩]) values(";
                XSqlString += "'" + DR["StudentName"] + "',";
                XSqlString += "'" + DR["PeaceScore"] + "')";
&nbs