以前,管理员界面中的“查找员工成绩”可以导出数据。现在,请参考此内容,将数据导出功能添加到部门负责人界面下的“查看我的员工成绩”中。

依葫芦画瓢之后,点击“导出数据”,却提示错误:

错误解析:

myda.Fill(myds,tname);

这是因为没有sql脚本,所以出错了。

string mysql = Reque["mysql"];

这句就是写脚本的地方,缺的是sql没有值。就像定义DataSet 也要写脚本。

string mysql = “这些写你的sql语句”;

sql语句可以是:select * from 【table】

因为查询按钮事件有3个,以下是query文件里的相关代码:

所以,这个页面的数据导出功能需要在query.cs分三个分支写,每一个分支对应不同的sql,比如按考核查询,在导出的时候就按照这个来写:

protected void Button1_Click(object sender, EventArgs e)

{

string mysql;

mysql = "SELECT * FROM score WHERE tno='" + Session["uno"] + "'AND cno ='" + Dro + "' ORDER BY sno";

myds = mydb.ExecuteQuery(mysql, "score");

if ["score"].Rows.Count > 0)

{

GridView1.DataSource = myds.Tables["score"];

GridView1.DataBind();

}

else

Re("<script>alert('没有员工选考或提交考核!')</script>");

}

protected void Button2_Click(object sender, EventArgs e)

{

string mysql;

mysql = "SELECT * FROM score WHERE tno='" + Session["uno"] + "'AND jidu ='" + Dro + "' ORDER BY sno";

myds = mydb.ExecuteQuery(mysql, "score");

if ["score"].Rows.Count > 0)

{

GridView1.DataSource = myds.Tables["score"];

GridView1.DataBind();

}

else

Re("<script>alert('没有员工选考或提交考核!')</script>");

}

protected void Button3_Click(object sender, EventArgs e)

{

string mysql;

mysql = "SELECT * FROM score WHERE tno='" + Session["uno"] + "'AND year ='" + Dro + "' ORDER BY sno";

myds = mydb.ExecuteQuery(mysql, "score");

if ["score"].Rows.Count > 0)

{

GridView1.DataSource = myds.Tables["score"];

GridView1.DataBind();

}

else

Re("<script>alert('没有员工选考或提交考核!')</script>");

}

最后实现的效果如下图:

总结,这里面有一个连接关系:

一、

按考核查询——DropDownList1——Button1

考核数据导出——Button4

二、

按季度查询——DropDownList2——Button2

季度数据导出——Button5

三、

按年度查询——DropDownList3——Button3

年度数据导出——Button6

这些关键点穿插在2个文件中,把前台、后台以及数据库连接在了一起。

相关推荐