我想让用户通过可以输入 服务器IP/名 用户名 密码 数据库名 表名 将本表导出一个EXECL文件,如何实现?

解决方案 »

  1.   

    根据 服务器IP/名 用户名 密码 数据库名 表名
    连接数据库,
    查询出(考虑海量数据时,分批提取)数据集合!
    写入EXECL 文件就可以下面是最简单的导出execl 的方法 HttpResponse resp = Page.Response;            resp.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                resp.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
                resp.AppendHeader("Content-Disposition", ("attachment;filename=VoucherRecordList_" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xls"));
                resp.Charset = "UTF-8";            System.Text.StringBuilder sb = new System.Text.StringBuilder();            int pageIndex = 1;
                int pageCount = -1;
                int i = 0;
                int rowIndex = 1;
                DataSet ds = null;
                //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
                for (i = 0; i < listColHearder.Count - 1; i++)
                    sb.Append(listColHearder[i] + "\t");
                sb.Append(listColHearder[i] + "\n");            do
                {
                    ds = new Juuway.BLL.Juuway_VoucherRecord().GetList(50, pageIndex, StrWhere, "", "");
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        break;
                    }
                    if (pageCount == -1)
                    {
                        pageCount = (int)Math.Ceiling(int.Parse(ds.Tables[1].Rows[0][0].ToString()) / 50d);
                    }                //逐行处理数据 
                    foreach (DataRow row in ds.Tables[0].Rows)
                    {
                        sb.Append(rowIndex.ToString() + "\t");
                       
                        //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
                        for (i = 1; i < listColName.Count - 1; i++)
                            sb.Append(row[listColName[i]].ToString() + "\t");
                        sb.Append(row[listColName[i]].ToString() + "\n");
                        rowIndex++;
                    }
                    pageIndex++;
                } while (pageIndex <= pageCount);            //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据    
                resp.Write(sb.ToString());
                
                //写缓冲区中的数据到HTTP头文件中
                resp.End();
      

  2.   

     string conStr = "server=.\\" + server + ";database=master;uid=sa;pwd=123456";
                SqlConnection con = new SqlConnection(conStr);
                string comStr = "select   [name]   from   sysdatabases   where   dbid   >=   7  ";
                SqlCommand cmd = new SqlCommand(comStr, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
     string constr = @"Integrated Security=SSPI;Data Source=GLB-CW-06\SQLEXPRESS;Initial Catalog=" + tableName + ";Provider=SQLOLEDB.1;uid=sa;pwd=123456";
                OleDbConnection con = new OleDbConnection(constr);
                con.Open();
                OleDbCommand cmd = new OleDbCommand("sp_tables", con);
                cmd.CommandType = CommandType.StoredProcedure;
                OleDbDataReader dr = cmd.ExecuteReader();