![Visual Studio 2010 (C#) Windows数据库项目开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/367/654367/b_654367.jpg)
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”和“详细信息”的区别。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-32.jpg?sign=1738845524-VahxjSTpEitGx8IEz5qRR3UVA5PihazL-0-346694fe2cb4855283ad6fd3a4773a56)
图3-32 设置Student为“详细信息”方式
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-33.jpg?sign=1738845524-udPWUEt5NMqnnae6RN54k9CjnAVCyVnW-0-7766351adccda479af4c816ab6755d16)
图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所示。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-34.jpg?sign=1738845524-NTdQqoyrejwmUn5tbwaCz7JJFAm030ss-0-29ef138ea993d54b3909c1c2b2a805e9)
图3-34 Student窗体的运行效果
学生所在的班级应该显示为“班级名称”,这样的界面比较友好,修改时,从“班级名称”里挑选一个班级也比直接输入班级代码方便,而且不会出错。下面我们将做这方面的改进。
(8)切换到Student窗体的设计界面,如图3-35所示,将Class No右侧的TextBox删除,从“工具箱”的“公共控件”面板中拖放一个ComboBox到Class No右侧。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-35.jpg?sign=1738845524-zttqFsvwsPfl26UPXt98tgLxsAAajkA4-0-80f6bbd2d6e6cbd602b7f84b8845f9e2)
图3-35 拖放一个ComboBox用于显示学生所在班级的信息
(9)如图3-36所示,设置新添加的ComboBox的DropDownStyle属性值为“DropDownList”,使下拉列表只可选择,而不允许输入。
(10)如图3-37所示,单击ComboBox任务,选中“使用数据绑定项”复选框。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-36.jpg?sign=1738845524-LiUxWQTicRNoToqj5hMqEpgADwLcASOp-0-c77e7d1594cdebcffa18b015148a8935)
图3-36 设置ComboBox的DropDownStyle属性值
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-37.jpg?sign=1738845524-wpn4c54M3gPOqQh0uFtlC0om3NUwwRaA-0-1075e9b93a97a6794a760c4187a77d3e)
图3-37 选中“使用数据绑定项”复选框
(11)如图3-38所示,设置“数据源”为“Class”。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-38.jpg?sign=1738845524-FwQZX1osUC0lbFbTStDsE1YfIV6BznNT-0-8ec518e4256c253617f0ae075b6b81e7)
图3-38 设置数据源
如果已经这样操作过,系统将自动添加classBindingSource控件,再次在下拉列表中选择时,选择classBindingSource选项即可。
(12)如图3-39所示,设置“显示成员”为“ClassName”。
(13)如图3-40所示,设置“值成员”为“ClassNo”。
(14)如图3-41所示,设置“选定值”为studentBindingSource下的“ClassNo”。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-39.jpg?sign=1738845524-LYSfFzf1U1nE7fSKeEVOKmeFAG3mPeJp-0-04e59773c77c43556ab29009f843efc7)
图3-39 设置显示成员
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-40.jpg?sign=1738845524-LJF8Ir5Yn9FDIouoGuINxzAzYPff2oYk-0-2379787a8e22cefe03970975de9bb7c3)
图3-40 设置值成员
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-41.jpg?sign=1738845524-vu0fo2rtAQwxxCRzw4VBl6v8n1rMylLW-0-a9b72a984f2b8b0c01e903db77acd826)
图3-41 设置选定值
以上几部操作的意思为:下拉列表中将显示为班级名称。班级表中有很多班级,最终显示的班级,是学生表中的ClasstNo在Class表中找到的对应ClassName。
更新数据时,也会将下拉列表中ClassName对应的ClassNo更新到Student表中。
(15)如图3-42所示,调整各Label的Text属性,使界面更为友好。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-42.jpg?sign=1738845524-qHgC8VUv6MGobrJc1u2wh4B0ieoAYRY4-0-acdf48b1c9f3645a622ece64a0ace61e)
图3-42 设置Label的Text属性
(16)继续改进,将“性别”设置为下拉列表,以便在下拉列表中选择“男”或“女”选项,这样比直接输入方便。
(17)如图3-43所示,将“性别”右侧的TextBox删除,从“工具箱”的“公共控件”面板中拖放一个ComboBox到“性别”右侧。
(18)设置DropDownStyle属性值为“DropDownList”,使下拉列表只可选择,而不允许输入。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-43.jpg?sign=1738845524-JrU1RnrAu3CbfmPzUdbWL7qeuZn4SIQG-0-f837aa0179f7cfd6d270a272e0b092c8)
图3-43 放置“性别”下拉列表
(19)如图3-44所示,单击“ComboBox任务”,选择“编辑项”选项。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-44.jpg?sign=1738845524-pUbeUOaNDbDvW97D5LP0hqAWzdbwcUin-0-52bde5e9ac82ab051d34d9b70781f2c7)
图3-44 选择“编辑项”选项
(20)如图3-45所示,输入两行文字,分别为“男”、“女”,单击“确定”按钮。
(21)如图3-46所示,选中“性别”下拉列表,查看其属性,展开DataBindings,设置“SelectedItem”属性为studentBindingSource下的“Sex”。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-45.jpg?sign=1738845524-3TCkJv4B9Pq47lmKuvsFN3OJQUVh0sWk-0-d3d321bfedd20ed4a0145e95a084b52a)
图3-45 编辑“性别”项
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-46.jpg?sign=1738845524-V0Zc1GwvLCzyhLrsqK8VOo6cJtW4pZVe-0-245880c6a1b3fc44c7cdc1d296ae7186)
图3-46 绑定“性别”数据项
(22)调整日期格式,如图3-47所示,选中“出生日期”旁的DateTimePicker控件,设置Format属性为“Custom”、CustomFormat属性为“yyyy-MM-dd”,表示4位年、2位月、2位日的格式。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-47.jpg?sign=1738845524-MI2koZT9zFnRr5L2oDHUsMbXG7YFUsa2-0-3e62ca4bebd976be636cead3d32a1a78)
图3-47 调整日期格式
(23)在主窗体中单击“学生信息”菜单,现在的运行效果如图3-48所示。
![](https://epubservercos.yuewen.com/479A39/3590270304425901/epubprivate/OEBPS/Images/Figure-0003-48.jpg?sign=1738845524-NPa998UI2FRTHhYsEFWHYf8CDlLCMxAL-0-249e7cb6c91d71f87472f0a10edc0a28)
图3-48 学生信息窗体的最终运行效果
(24)在不违反数据库相关约束规则的前提下,可做如下测试。
① 添加一条学生记录,其中“所在班级”可在下拉列表中进行选择,单击“保存”按钮,在数据库中验证是否加入了该数据。验证一下ClasstNo是否为下拉列表中选择的班级名称对应的ClassNo。
② 修改刚添加的记录,单击“保存”按钮,在数据库中验证是否修改了该数据。
③ 删除刚添加的记录,单击“保存”按钮,在数据库中验证是否删除了该数据。