3.3 学生数据维护
3.3.1 修改数据集并添加到学生表
(1)在“解决方案资源管理器”中双击“dsXk.xsd”编辑数据集。
(2)在“服务器资源管理器”中展开“数据连接”下的“home\sqlexpress.Xk.dbo”,展开“表”,将“Student”拖放到数据集的设计界面中。
3.3.2 设计学生信息窗体并维护数据
(1)在项目中添加新的Windows窗体,命名为“frmStudent”。
(2)将窗体拉到适当大小,设置窗体的“Text”属性为“学生信息”。
(3)打开“数据源”,如果看不到,可选择“数据”菜单下的“显示数据源”命令。
(4)如图3-32所示,在“数据源”中确保Student左边的图标为详细信息状态。如果不是,可单击下拉按钮后选择“详细信息”选项。
(5)在“数据源”中拖放“Student”到frmStudent窗体中。如图3-33所示,可以看到窗体中没有DataGridView,而是以TextBox的方式来显示和操作数据。这就是在“数据源”中将Student设置为“DataGridView”和“详细信息”的区别。
图3-32 设置Student为“详细信息”方式
图3-33 设置Student为“详细信息”方式拖放后生成的窗体
(6)在主窗体中加入调用Student窗体的代码。在“解决方案资源管理器”中双击“frmMain”,打开该窗体的设计界面。双击“学生信息”菜单,为该菜单编写Click事件,代码如下。
private void学生信息ToolStripMenuItem_Click(object sender, EventArgs e) { frmStudent f = new frmStudent(); f.MdiParent = this; f.Show(); }
(7)在主窗体中单击“学生信息”菜单,现在的运行效果如图3-34所示。
图3-34 Student窗体的运行效果
学生所在的班级应该显示为“班级名称”,这样的界面比较友好,修改时,从“班级名称”里挑选一个班级也比直接输入班级代码方便,而且不会出错。下面我们将做这方面的改进。
(8)切换到Student窗体的设计界面,如图3-35所示,将Class No右侧的TextBox删除,从“工具箱”的“公共控件”面板中拖放一个ComboBox到Class No右侧。
图3-35 拖放一个ComboBox用于显示学生所在班级的信息
(9)如图3-36所示,设置新添加的ComboBox的DropDownStyle属性值为“DropDownList”,使下拉列表只可选择,而不允许输入。
(10)如图3-37所示,单击ComboBox任务,选中“使用数据绑定项”复选框。
图3-36 设置ComboBox的DropDownStyle属性值
图3-37 选中“使用数据绑定项”复选框
(11)如图3-38所示,设置“数据源”为“Class”。
图3-38 设置数据源
如果已经这样操作过,系统将自动添加classBindingSource控件,再次在下拉列表中选择时,选择classBindingSource选项即可。
(12)如图3-39所示,设置“显示成员”为“ClassName”。
(13)如图3-40所示,设置“值成员”为“ClassNo”。
(14)如图3-41所示,设置“选定值”为studentBindingSource下的“ClassNo”。
图3-39 设置显示成员
图3-40 设置值成员
图3-41 设置选定值
以上几部操作的意思为:下拉列表中将显示为班级名称。班级表中有很多班级,最终显示的班级,是学生表中的ClasstNo在Class表中找到的对应ClassName。
更新数据时,也会将下拉列表中ClassName对应的ClassNo更新到Student表中。
(15)如图3-42所示,调整各Label的Text属性,使界面更为友好。
图3-42 设置Label的Text属性
(16)继续改进,将“性别”设置为下拉列表,以便在下拉列表中选择“男”或“女”选项,这样比直接输入方便。
(17)如图3-43所示,将“性别”右侧的TextBox删除,从“工具箱”的“公共控件”面板中拖放一个ComboBox到“性别”右侧。
(18)设置DropDownStyle属性值为“DropDownList”,使下拉列表只可选择,而不允许输入。
图3-43 放置“性别”下拉列表
(19)如图3-44所示,单击“ComboBox任务”,选择“编辑项”选项。
图3-44 选择“编辑项”选项
(20)如图3-45所示,输入两行文字,分别为“男”、“女”,单击“确定”按钮。
(21)如图3-46所示,选中“性别”下拉列表,查看其属性,展开DataBindings,设置“SelectedItem”属性为studentBindingSource下的“Sex”。
图3-45 编辑“性别”项
图3-46 绑定“性别”数据项
(22)调整日期格式,如图3-47所示,选中“出生日期”旁的DateTimePicker控件,设置Format属性为“Custom”、CustomFormat属性为“yyyy-MM-dd”,表示4位年、2位月、2位日的格式。
图3-47 调整日期格式
(23)在主窗体中单击“学生信息”菜单,现在的运行效果如图3-48所示。
图3-48 学生信息窗体的最终运行效果
(24)在不违反数据库相关约束规则的前提下,可做如下测试。
① 添加一条学生记录,其中“所在班级”可在下拉列表中进行选择,单击“保存”按钮,在数据库中验证是否加入了该数据。验证一下ClasstNo是否为下拉列表中选择的班级名称对应的ClassNo。
② 修改刚添加的记录,单击“保存”按钮,在数据库中验证是否修改了该数据。
③ 删除刚添加的记录,单击“保存”按钮,在数据库中验证是否删除了该数据。