zoukankan      html  css  js  c++  java
  • 从多张表获取数据,重组DataTable,根据重组路径,打包下载文件。

    #region 打包导出
    public void ExportPackage()
    {
    #region 获取学生各个阶段上传的文件
    string TopicId = GetTopicId();
    string sql1 = "select * from tblTopicDraft where tblTopicId='" + TopicId + "' and stuId='" + studentID + "' and del_flg=0";
    string sql2 = "select * from tblTopicFinalizeDraft where tblTopicId='" + TopicId + "' and stuId='" + studentID + "' and del_flg=0";
    string sql3 = "select * from tblTopicEndDraft where tblTopicId='" + TopicId + "' and stuId='" + studentID + "' and del_flg=0";
    string sql4 = "select * from tblTopicProposal where tblTopicId='" + TopicId + "' and stuId='" + studentID + "' and del_flg=0";
    string path1 = "";
    string path2 = "";
    string path3 = "";
    string path4 = "";
    DataTable dt = s1.select(sql1);
    if (dt.Rows.Count > 0)
    {
    //获取路径信息
    path1 = dt.Rows[0]["Attachment"].ToString();
    }
    dt = s1.select(sql2);
    if(dt.Rows.Count>0)
    {
    //获取路径信息
    path2 = dt.Rows[0]["Attachment"].ToString();
    }
    dt = s1.select(sql3);
    if(dt.Rows.Count>0)
    {
    //获取路径信息
    path3 = dt.Rows[0]["Attachment"].ToString();
    }
    dt = s1.select(sql4);
    if (dt.Rows.Count > 0)
    {
    //获取路径信息
    path4 = dt.Rows[0]["Attachment"].ToString();
    }
    #endregion

    #region 组装DataTable

    DataTable dtNewTable = new DataTable("cart");
    DataColumn dc1 = new DataColumn("id", Type.GetType("System.Int16"));
    DataColumn dc2 = new DataColumn("path",Type.GetType("System.String"));

    dtNewTable.Columns.Add(dc1);
    dtNewTable.Columns.Add(dc2);

    //以上代码完成了DataTable的构架,但是里面是没有任何数据的
    for (int i = 0; i < 4; i++)
    {
    DataRow dr = dtNewTable.NewRow();
    dr["id"] = i;
    if(i==0)
    {
    dr["path"] = path1;
    }
    if (i == 1)
    {
    dr["path"] = path2;
    }
    if (i == 2)
    {
    dr["path"] = path3;
    }
    if (i == 3)
    {
    dr["path"] = path4;
    }
    dtNewTable.Rows.Add(dr);
    }
    #endregion

    #region 根据路径保存到文件夹-打包下载
    WebClient client = new WebClient();
    if (dtNewTable.Rows.Count>0)
    {
    string sZipFileName = DateTime.Now.ToString("yyyy_MM_dd") + "_" + new System.Random().Next(100, 999).ToString();
    string sZipFileName1 = sZipFileName;
    string websysurl = System.Configuration.ConfigurationManager.AppSettings["websysurl"].ToString();
    for (int j = 0; j < dtNewTable.Rows.Count; j++)
    {
    sZipFileName = sZipFileName1;
    string Attachment = dtNewTable.Rows[j]["path"].ToString();
    string strExt = dtNewTable.Rows[j]["path"].ToString();
    string newext = strExt.Substring(strExt.LastIndexOf("."));
    string sname ="";
    string sno = "";

    DataTable d2 = s1.select("select name,studyno from tblStudent where tblStudentID=" + studentID);
    if (d2.Rows.Count > 0)
    {
    sname = d2.Rows[0][0].ToString();
    sno = d2.Rows[0][1].ToString();
    }
    sname = sno + "_" + new System.Random().Next(100, 999).ToString() + sname; //重组文件名
    Uri U1 = new Uri(websysurl + Attachment.Replace("..", ""));
    string so = U1.AbsoluteUri;
    try
    {
    string sFileName = sZipFileName;
    sZipFileName = Server.MapPath("ItemTemplateExp/" + sFileName).Replace("LabOpenScience", "UpLoadFile");
    if (Directory.Exists(sZipFileName) != true)//判断文件夹是否存在
    {
    Directory.CreateDirectory(sZipFileName);
    }
    string sPathOld = sZipFileName + "\" + zipCommon.FilterSpecial(sname + newext);
    client.DownloadFile(so, sPathOld);//存入
    }
    catch (Exception e)
    {
    break;
    }
    }

    string sZIPpath = sZipFileName.Remove(sZipFileName.LastIndexOf("\"));
    zipCommon.CreateZip(sZipFileName, sZIPpath + "\" + sZipFileName1 + ".zip");//打包
    string FullFileName = websysurl + "/LabTopicManage/ItemTemplateExp/" + sZipFileName1 + ".zip";//重组下载路径
    A1.Attributes.Add("href", "" + FullFileName + "");//标签下载
    }
    #endregion

    }
    #endregion

    反思 空杯 担当
  • 相关阅读:
    图解zookeeper FastLeader选举算法【转】
    win10 tensorflow python3*,Multiprocessing using fit_generator(pickle_safe=True) fail问题解决
    xcode从8升级到9出现的问题
    c++保存数据到TXT
    基于机器学习人脸识别face recognition具体的算法和原理
    pycharm 操作的一些设置,记录下
    ML-DL-各种资源汇总
    MATLAB实现多元线性回归预测
    【机器学习】 Matlab 2015a 自带机器学习算法汇总
    C++中嵌入python程序——命令行模式
  • 原文地址:https://www.cnblogs.com/oralig/p/9878002.html
Copyright © 2011-2022 走看看