导出dbf格式的文件

using (var session = new SessionFactory().OpenSession())
            {
                #region MyRegion

                var q = new Criteria<SelfStudyExamProcessScore>(session).Asc(m => m.ActivityId).Asc(m => m.ExamStudentNo);
                if (!IsInstructor())
                {
                    q.Where(m => m.TeacherCode.Equals(CurrentAccountNo));
                }
                var studentScores = q.Find();
                var path = ConfigurationManager.AppSettings["ExportTempPath"] ?? AppDomain.CurrentDomain.BaseDirectory + "ExportTemp/";

                string mTableName = "WYKS";


                string mStrConn = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + path + @"/;Extended Properties=""dBASE IV;HDR=Yes;"";";
                var mOLDBConn = new OleDbConnection(mStrConn);

                #endregion
                #region 创建表文件


                mOLDBConn.Open();
                OleDbCommand sqlt = new OleDbCommand();
                sqlt.Connection = mOLDBConn;
                //sqlt.CommandText = "DROP TABLE " + mTableName + "";
                //sqlt.ExecuteNonQuery();
                //sqlt.CommandText = "Create table " + mTableName + " ( 活动名称 varchar(18),学生姓名 varchar(20),学生考号 varchar(20),专业代码 varchar(20),专业名称 varchar(20),课程名称 varchar(20),考勤成绩 float,课堂表现成绩 float,《过程性考核册》成绩 float,应变能力成绩 float(,过程性考核成绩 float)";
                sqlt.CommandText = "Create table " + mTableName + " ( HDMC varchar(18),XSXN varchar(20),XSKH varchar(20),ZYDM varchar(20),ZYMC varchar(20),KCMC varchar(20),KQCJ float,KTCJ float,GCCJ float, YBCJ float, CJ float)";
                OleDbCommand sqlt1 = mOLDBConn.CreateCommand();
                sqlt.ExecuteNonQuery();
                foreach (var item in studentScores)
                {


                    sqlt1.CommandText = "Insert Into " + mTableName + " values ('" + item.ActivityName + "','" +
                                        item.Name + "','" + item.ExamStudentNo + "','" + item.MajorCode + "','" +
                                        item.MajorName + "','" + item.CourseName + "'," + item.Attendance + "," +
                                        item.CourseShow + "," + item.ProcessBook + "," + item.StrainCapacity + "," +
                                        item.ProcessCheck + ")";


                    sqlt1.ExecuteNonQuery();


                }
              
              


                #endregion
                #region 下载
                FileStream fs = new FileStream(path + "//" + mTableName + ".DBF", FileMode.Open, FileAccess.Read);
                byte[] b = new byte[fs.Length];
                fs.Read(b, 0, b.Length);
                fs.Flush();
                fs.Close();
                Response.Clear();
                Response.ClearHeaders();
                Response.Clear();
                Response.ClearHeaders();
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(path + "//" + mTableName + ".DBF", Encoding.UTF8));
                Response.AppendHeader("Content-Length", b.Length.ToString());
                fs.Close();
                fs.Close();
                if (b.Length > 0)
                {
                    Response.OutputStream.Write(b, 0, b.Length);

                }
             
                sqlt.CommandText = "DROP TABLE " + mTableName + "";
                sqlt.ExecuteNonQuery();
                sqlt.Dispose();
                sqlt1.Dispose();
                mOLDBConn.Close();
                Response.Flush();
                Response.End();

                return Content("成功");

                #endregion

            }

//注意:字段不能用中文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值