2.合并统计的实现
图7-2
从上面的图中,想必大家已经猜到了问卷的合并方法了吧,是的,我们是通过从外部导入数据的方法来进行合并的,其设计的原型是这样来的:比如我们有20份收回来的问卷,分别由A某和B某2个工作人员进行统计,各统计10份,B某统计好了后,将其统计的数据库导出来并COPY给了A某,A某拿到B某的的数据库后,就可以通过上图7-2中的“浏览”查找到B某的数据库,并选择需要合并统计的问卷后,点“确定合并”,系统便可自行进行合并统计了。其实现的代码如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;//引入文件操作类库
namespace LJ_QuestionnaireSystem
{
/**//// <summary>
/// Name:合并问卷统计类
/// Author:Asidy
/// Time:2009.04.26gtf
/// </summary>
public partial class SurveyStUnite : SurveryWin
{
public SurveyStUnite()
{
InitializeComponent();
}
//初始化问卷列表:将问卷绑定到SurveyComBox控件上
private void SurveyStUnite_Load(object sender, EventArgs e)
{
string sql = "Select id,Survey_Name From Lj_Survey";//查询问卷列表
DataTable sdt = dboperate.GetDataTable(sql);//得到查询出的问卷数据表
if (sdt.Rows.Count > 0) //如果问卷存在则进行如下操作
{
SurveyComBox.DataSource = sdt; //设置SurveyComBox的数据源为sdt
SurveyComBox.DisplayMember = "Survey_Name"; //将问卷名绑定到SurveyComBox列表项的显示属性上,用来显示问卷名
SurveyComBox.ValueMember = "id"; //将问卷的ID值绑定到SurveyComBox列表项的实际值属性上,以便操作时获取其ID值进行查询
}
}
/**//// <summary>
/// 查找合并统计的数据库文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FindFolderBt_Click(object sender, EventArgs e)
{
OpenFileDialog opf = new OpenFileDialog();//实例化一个打开对话框对象
opf.Filter = "Access数据库文件(*.mdb)|*.mdb";//设置文件类型
opf.Title = "选择合并的数据库";//设置对话框标题
opf.RestoreDirectory = true;//对话框关闭还原到当前目录
if (opf.ShowDialog() == DialogResult.OK) //如果对话框返回OK,则执行如下操作
{
StatDbFileTxt.Text = opf.FileName; //将查找合并的数据库文件名赋值给StatDbFileTxt控件
}
opf.Dispose();//释放对话框所使用的资源
}
/**//// <summary>
/// StatDbFileTxt中的内容改变时引发此事件
/// 即当用户输入或选择合并的数据库时引发此事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StatDbFileTxt_TextChanged(object sender, EventArgs e)
{
if (StatDbFileTxt.Text.Trim() != "") //如果StatDbFileTxt中的内容不为空时,执行如下操作,否则弹出提示对话框
{
SureUniteBtn.Enabled = true;//将"确定合并"按钮设置为可操作状态
CancelBtn.Enabled = true;
try
{ //捕获异常
if (StatDbFileTxt.T
|