温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:多功能在线考试系统源码
当前文件:
OnLineExam/Web/admin_UserScore.aspx.cs,打开代码结构图
OnLineExam/Web/admin_UserScore.aspx.cs,打开代码结构图1using System; 2
using System.Data; 3
using System.Configuration; 4
using System.Collections; 5
using System.Web; 6
using System.Web.Security; 7
using System.Web.UI; 8
using System.Web.UI.WebControls; 9
using System.Web.UI.WebControls.WebParts; 10
using System.Web.UI.HtmlControls; 11
using MyOnLineExam.BusinessLogicLayer; 12
using System.IO; 13
using System.Data.OleDb; 14
15
public partial class Web_admin_UserScore : System.Web.UI.Page 16
{ 17
protected void Page_Load(object sender, EventArgs e) 18
{ 19
if (!IsPostBack) 20
{ 21
ImageButton1.Attributes.Add("OnClick", "javascript:return confirm('确实要删除这些用户吗?')"); 22
InitData(); //绑定用户信息 23
} 24
} 25
//初始化成绩表格 26
protected void InitData() 27
{ 28
Scores score = new Scores(); //创建Scores对象 29
DataSet ds = score.QueryScore(); //调用QueryScore方法查询成绩并将查询结果放到DataSet数据集中 30
GridView1.DataSource = ds; //为GridView控件指名数据源 31
GridView1.DataBind(); //绑定数据 32
} 33
//GridView控件RowDeleting事件 34
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 35
{ 36
Scores score = new Scores(); //创建Scores对象 37
int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //取出要删除记录的主键值 38
if (score.DeleteByProc(ID)) 39
{ 40
Response.Write("<script language=javascript>alert('成功删除该用户!')</script>"); 41
} 42
else 43
{ 44
Response.Write("<script language=javascript>alert('删除该用户失败!')</script>"); 45
} 46
GridView1.EditIndex = -1; 47
InitData(); 48
} 49
//批量删除成绩 50
protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 51
{ 52
Scores score = new Scores();//创建Scores对象 53
foreach (GridViewRow dr in GridView1.Rows)//对GridView中的每一行进行判断 54
{ 55
if (((CheckBox)dr.FindControl("xuanze")).Checked)//如果选择了进行删除 56
{ 57
int ID = int.Parse(((Label)dr.FindControl("Label1")).Text); 58
score.ID = ID; 59
score.DeleteByProc(ID); 60
} 61
} 62
} 63
//到出到Excel事件 64
protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 65
{ 66
Scores score = new Scores(); //创建Scores对象 67
DataSet ds = score.QueryScore(); //调用QueryScore方法查询成绩并将查询结果放到DataSet数据集中 68
DataTable DT = ds.Tables[0]; 69
//生成将要存放结果的Excel文件的名称 70
string NewFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; 71
//转换为物理路径 72
NewFileName = Server.MapPath("Temp/" + NewFileName); 73
//根据模板正式生成该Excel文件 74
File.Copy(Server.MapPath("../Module01.xls"), NewFileName, true); 75
//建立指向该Excel文件的数据库连接 76
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NewFileName + ";Extended Properties='Excel 8.0;'"; 77
OleDbConnection Conn = new OleDbConnection(strConn); 78
//打开连接,为操作该文件做准备 79
Conn.Open(); 80
OleDbCommand Cmd = new OleDbCommand("", Conn); 81
82
foreach (DataRow DR in DT.Rows) 83
{ 84
string XSqlString = "insert into [Sheet1$]"; 85
XSqlString += "([用户姓名],[试卷],[成绩],[考试时间]) values("; 86
XSqlString += "'" + DR["UserName"] + "',"; 87
XSqlString += "'" + DR["PaperName"] + "',"; 88
XSqlString += "'" + DR["Score"] + "',"; 89
XSqlString += "'" + DR["ExamTime"] + "')"; 90
Cmd.CommandText = XSqlString; 91
Cmd.ExecuteNonQuery(); 92
} 93
94
//操作结束,关闭连接 95
Conn.Close(); 96
//打开要下载的文件,并把该文件存放在FileStream中 97
System.IO.FileStream Reader = System.IO.File.OpenRead(NewFileName); 98
//文件传送的剩余字节数:初始值为文件的总大小 99
long Length = Reader.Length; 100
101
Response.Buffer = false; 102
Response.AddHeader("Connection", "Keep-Alive"); 103
Response.ContentType = "application/octet-stream"; 104
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("学生成绩.xls")); 105
Response.AddHeader("Content-Length", Length.ToString()); 106
107
byte[] Buffer = new Byte[10000]; //存放欲发送数据的缓冲区 108
int ByteToRead; //每次实际读取的字节数 109
110
while (Length > 0) 111
{ 112
//剩余字节数不为零,继续传送 113
if (Response.IsClientConnected) 114
{ 115
//客户端浏览器还打开着,继续传送 116
ByteToRead = Reader.Read(Buffer, 0, 10000); //往缓冲区读入数据 117
Response.OutputStream.Write(Buffer, 0, ByteToRead); //把缓冲区的数据写入客户端浏览器 118
Response.Flush(); //立即写入客户端 119
Length -= ByteToRead; //剩余字节数减少 120
} 121
else 122
{ 123
//客户端浏览器已经断开,阻止继续循环 124
Length = -1; 125
} 126
} 127
128
//关闭该文件 129
Reader.Close(); 130
//删除该Excel文件 131
File.Delete(NewFileName); 132
} 133
} 134






}