4.2 “学生基本信息浏览窗体”功能的实现 ① 窗体的初始化工作
窗体中四个导航按钮控件都要从结果集中读取学生的基本信息,并需要确定正在操作的当前学生的具体位置。为此,我们首先定义两个私有数据成员用于保存该窗体运行过程中的数据集合和当前记录的位置。具体操作为:在StuBasicInfoQueryForm窗体类中添加以下代码。
DataSet StuBasicInfoDS = new DataSet(); // 保存该窗体涉及的数据集 int currentRecord = 0; // 保存当前操作的记录位置 其次,我们需要初始化窗体数据查询结果集以及设置界面打开状态。
第一步,创建一个通用的界面数据绑定的私有方法,该方法根据查询结果集中学生的具体位置,在窗体的相应控件上展示该学生的详细信息。具体操作即在StuBasicInfoQueryForm类中添加以下代码:
private void CoverDataBind(int position) {
DataRow dr = StuBasicInfoDS.Tables[0].Rows[position]; StuIDTextBox.Text = dr[\].ToString(); StuNameTextBox.Text = dr[\].ToString(); StuBirthTextBox.Text = dr[\].ToString(); DeptNameTextBox.Text = dr[\].ToString(); StuCardTextBox.Text = dr[\].ToString(); StuResumeTextBox.Text = dr[\].ToString();
if (dr[\].ToString().Equals(\男\)) {
MaleRatioButton.Enabled = true; MaleRatioButton.Checked = true; FemaleRadioButton.Enabled = false; } else {
MaleRatioButton.Enabled = false;
C/S结构项目实训(C#语言版)
21
FemaleRadioButton.Enabled = true; FemaleRadioButton.Checked = true; }
switch(dr[\].ToString()) {
case \:
DYRatioButton.Enabled = true; DYRatioButton.Checked = true;
TYRadioButton.Enabled = false; OtherRatioButton.Enabled = false; break; case \:
DYRatioButton.Enabled = false; OtherRatioButton.Enabled = false;
TYRadioButton.Enabled = true ; TYRadioButton.Checked = true ; break; case \:
OtherRatioButton.Enabled = true; OtherRatioButton.Checked = true;
DYRatioButton.Enabled = false; TYRadioButton.Enabled = false; break; }
//图片数据的显示 try
C/S结构项目实训(C#语言版)
22
{
byte[] PhotoBuffer = (byte[])dr[\]; Stream Photo = new MemoryStream(PhotoBuffer); Image PhotoImage = Image.FromStream(Photo, true); StuPhotoPictureBox.Image = PhotoImage; Photo.Close(); } catch {
StuPhotoPictureBox.Image = null; }
}
第二步,我们从数据库中读取学生基本信息数据,如果有学生,则在窗体启动后列示第一个学生的基本信息,如果没有则提示相关信息。为此,我们需要在StuBasicInfoQueryForm的Load事件中添加以下代码:
private void StuBasicInfoQueryForm_Load(object sender, EventArgs e) {
string sqlstr = \;
StuBasicInfoDS =
SqlHelper.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,sqlstr);
//如果存在记录,显示第一条,否则提示没有数据信息 if (StuBasicInfoDS.Tables[0].Rows.Count == 0) {
MessageBox.Show(this, \不存在您要浏览的信息!!!\, \信息提示\, MessageBoxButtons.OK, MessageBoxIcon.Warning); }
else { currentRecord = 1;
CoverDataBind(currentRecord - 1);
}
C/S结构项目实训(C#语言版)
23
}
至此,窗体的初始化工作完毕。 ② “第一条”按钮功能的实现
在FirstRecorButton的Click事件中添加以下代码: if (StuBasicInfoDS.Tables[0].Rows.Count > 0)
{
currentRecord = 1;
CoverDataBind(currentRecord -1); PriorRecordButton.Enabled = false; NextRecordButton.Enabled = true;
}
③ “上一条”按钮功能的实现
在PriorRecordButton按钮的Click事件中添加以下代码: if (currentRecord > 1)
{
currentRecord = currentRecord - 1; CoverDataBind(currentRecord - 1); NextRecordButton.Enabled = true;
} else {
MessageBox.Show(this, \已经到达第一条!!!\, \信息提示\, MessageBoxButtons.OK, MessageBoxIcon.Warning); PriorRecordButton.Enabled = false;
}
④ “下一条”按钮功能的实现
在NextRecordButton按钮的Click事件中添加以下代码: if (currentRecord < StuBasicInfoDS.Tables[0].Rows.Count)
{
currentRecord = currentRecord + 1; CoverDataBind(currentRecord - 1);
C/S结构项目实训(C#语言版)
24
PriorRecordButton.Enabled = true;
} else {
MessageBox.Show(this,\已经到达最后一条!!!\,\信息提示\,MessageBoxButtons.OK,MessageBoxIcon.Warning); NextRecordButton.Enabled = false;
}
⑤ “最后一条”按钮功能的实现
在LastRecordButton按钮的Click事件中添加以下代码: if (StuBasicInfoDS.Tables[0].Rows.Count > 0)
{
currentRecord = StuBasicInfoDS.Tables[0].Rows.Count;
CoverDataBind(currentRecord - 1); PriorRecordButton.Enabled = true; NextRecordButton.Enabled = false;
}
至此,学生信息浏览的功能基本实现。
2.5 学生成绩信息查询窗体的设计与功能实现
(1)功能描述
该功能主要是根据输入的学号信息,查询学生的主要的基本信息(包括姓名、性别、出生日期等信息),然后用表格列出该学生所有选修课程的课程编号、课程名称、课程学分以及课程成绩等信息。
(2)流程图
针对功能描述,我们绘制学生成绩信息查询功能的操作流程图如图2.5-1说明。
C/S结构项目实训(C#语言版) 25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库项目实训-学生信息管理系统(5)在线全文阅读。
相关推荐: