employee表设计图
pay表设计图
程序运行结果如下图所示:
显示全部员工工资情况
筛选属于“财务室”的员工工资情况
解决方案:
(1)建立一个新项目。放DataGridView控件到窗体。选中该控件,单击该控件右上角标题为一箭头的按钮,将打开一窗体。
6
(2)打开标题为\选择数据源\的ComboBox控件下拉列表,单击\添加项目数据源?\,打开\数据源配置向导\对话框,选中\数据库\,单击\下一步\按钮,打开下一个\数据源配置向导\对话框。可以选择已有的数据库连接,也可以建立新的数据库连接。这里单击\新建连接(C)?\按钮,打开\添加连接\对话框。 (3)当向导提示选择数据库对象时可选择数据库中所有的表。
(4)在“数据源”窗格中右键单击数据源employeeDataSet,在弹出的快捷菜单中执行“使用设计器编辑数据集”命令打开设计器窗口,右键单击employee表下方的“employeeTableAdpter”在弹出的快捷菜单中执行“配置”命令,启动TableAdapter配置向导。界面如图所示:
数据源视图
(5)修改SQL语句为如下内容:
SELECT employee.编号, employee.姓名, employee.部门, pay.基本工资, pay.职务工资, pay.补贴, pay.奖金, pay.基本工资 + pay.职务工资 + pay.补贴 + pay.奖金 AS 应发工资, pay.扣税, pay.基本工资 + pay.职务工资 + pay.补贴 + pay.奖金 - pay.扣税 AS 实发工资FROM (employee INNER JOIN pay ON employee.编号 = pay.编号)
(6)向窗体上添加1个标签控件,1个文本框控件、3个按钮控件切换到窗体设计窗口,设置标签Label1、按钮button1、button2、button3的Text属性分别为:“输入部门名称”、“查找”、“显示全部”和“退出”。添加相应的事件处理函数。 (7)程序代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MultiTableQuery { public partial class Form1 : Form { public Form1() { 7
InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // TODO: 这行代码将数据加载到表“employeeDataSet.employee”中。您可以根据需要移 动或移除它。 this.employeeTableAdapter.Fill(this.employeeDataSet.employee); } private void btnQuery_Click(object sender, EventArgs e) { // 定义变量dvresult为DataView类型,并为其赋值当前DataSet的缺省视图 DataView dvresult = employeeDataSet.employee.DefaultView; // 设置DataView中的数据按部门列排序 dvresult.Sort = \部门\ // 设置过滤器,仅显示指定部门的行 dvresult.RowFilter = \部门='\ // 设置行状态过滤器 dvresult.RowStateFilter = DataViewRowState.CurrentRows; // 指定DataGridView控件的新数据源为按部门过滤后的DataView dataGridView1.DataSource = dvresult; } private void btnAll_Click(object sender, EventArgs e) { DataView dvresult = employeeDataSet.employee.DefaultView; dvresult.Sort = \部门\ dvresult.RowFilter = \ // 取消行过滤器 dvresult.RowStateFilter = DataViewRowState.CurrentRows; dataGridView1.DataSource = dvresult; } private void btnQuit_Click(object sender, EventArgs e) { Application.Exit(); } } } (8)保存并构建应用程序。执行应用程序,以验证其工作情况。
3:使用BindingSource和BindingNavigator控件操作数据库 问题
创建一个具有添加、删除、修改等功能的SQL Server数据库应用程序。 关键步骤
(1) 连接SQL Server数据库
8
启动数据源配置向导,在“选择您的数据连接”对话框中单击【新建数据连接】按钮,在“添加连接”对话框中若默认的连接类型不正确,可单击【更改】按钮打开对话框,选择其中“Microsoft SQL Server”数据源类型,单击【确定】按钮。 (2)TableAdapter配置向导
在程序窗体设计器下方可以看到由系统自动创建的4个对象:DataSet(数据集)、BindingSource(绑定到数据源)、TableAdapter(表适配器)和BindingNavigator(绑定到导航工具栏)。鼠标指向DataSet或TableAdapter单击右键,在弹出的快捷菜单中执行“在数据集编辑器中编辑”命令打开对话框。右键单击表适配器,在弹出的快捷菜单中执行“配置”命令,启动TableAdapter配置向导。
单击对话框中【高级设置】按钮,打开对话框。用户可根据程序的需要选择是否生成Insert(插入)、Update(更新)和Delete(删除)SQL语句。
单击“输入SQL语句”对话框中的【下一步】按钮,打开对话框。此处可以选择需要为TableAdapter生成哪些方法,如填充(Fill)、返回(Get)及用于将更新直接发送到数据库的方法。单击【下一步】按钮,在对话框中单击【完成】按钮结束TableAdapter配置向导。 (3)完善程序界面和代码
通过使用数据源配置向导和TableAdapter配置向导,创建的SQL Server数据库应用程序已具有了要求的功能。但为了使程序更加美观、更加人性化还需要进行一些简单的完善。设计界面如图所示:
界面设计视图
表可以采用两种方式进行显示:DataGridView和详细信息。如采用详细信息方式时,列的显示方式就有多种选择,如TextBox、Label、ComboBox等。 解决方案:
(1)创建一个名为“ConnectExam”的基于Windows的应用程序。 (2)添加数据源。 (3)配置TableAdapter。 (4)设计界面。 (5)完善代码。
用户单击保存按钮时执行的事件过程代码修改如下:
private void studentBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.studentBindingSource.EndEdit(); this.studentTableAdapter.Update(this.connectExampleDataSet.student); // 下列语句行用于显示提示信息,需要手工添加 MessageBox.Show(\更新成功!\系统提示\MessageBoxIcon.Information); } 9
添加用户关闭窗体时执行的事件过程代码如下:
private void Form1_FormClosed(object sender, FormClosedEventArgs e) { // 声明变量用于存放信息框返回结果 DialogResult result; // 用HasChanges()方法判断数据集是否已被修改 if (connectExampleDataSet.HasChanges()) { // 若数据集已被修改则显示信息框提示用户 result = MessageBox.Show(\数据已被修改,是否保存? \系统提示\ MessageBoxButtons.YesNo, MessageBoxIcon.Information); // 若用户单击了信息框中的【是】按钮 if (result == DialogResult.Yes) { this.Validate(); this.studentBindingSource.EndEdit(); this.studentTableAdapter.Update(connectExampleDataSet.student); } } }
4:在SQL Server数据库中存储图像 问题
在SQL Server数据库中存储图像。 问题说明
数据库test.mdf的test表包含pic字段,其数据类型为image,是一幅图像,本例将pic字段绑定到pictureBox控件。 分析
创建数据库Test.mdf,创建Test表,包含字段“ID”,int类型;(是标志)=是;标志增量=1;标志种子=1,即将字段“ID”设为自动增量字段,设为主键。创建字段“pic”,image类型,允许为空。 解决方案:
(1)建立一个新项目。放PictureBox控件到窗体。
(2)单击菜单“数据(A)|添加新数据源(N)?”,打开“数据源配置向导”对话框,连接数据库Test.mdf。 (3)在PictureBox控件属性DataBindings.Image后的下拉列表中将看到pic字段,选中pic字段将PictureBox控件绑定到pic字段。
(4)放BindingNavigator控件到窗体,修改该控件BindingSource属性为testBindingSource。 (5)放Button和OpenFileDialog控件到窗体,Button控件的标题为\增加或修改图像\,按钮单击事件处理函数如下:
private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog(this) == DialogResult.OK) 10
{ Bitmap bits=null; bits = new Bitmap(openFileDialog1.FileName);//建立指定文件的新位图对象 pictureBox1.Image = bits; } } (6)放Button控件到窗体,标题为\保存图像到数据库\,单击事件处理函数如下: private void button2_Click(object sender, EventArgs e) { if (this.testDataSet.HasChanges())//如果DataSet中数据被修改 this.testTableAdapter.Update(this.testDataSet);//更新数据库 }//集中调试环境中不能保存所作的修改,脱离集中调试环境运行可以保存所作的修改。 (7)程序界面如图所示:
程序设计界面
(8)编译运行,单击BindingNavigator控件标题为\按钮,为Test表增加一个记录,单击\增加或修改图像\按钮,可以为该记录增加图像。也可为当前记录修改图像。
实训总结
根据实训内容和步骤,写出实训体会。
11
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验8 数据库应用(2)在线全文阅读。
相关推荐: