当前位置:文档之家› VisualC数据库开发案例教程28197电子教案和源代码第5章

VisualC数据库开发案例教程28197电子教案和源代码第5章


思考题
1.如何编程对数据库记录进行查询?试举例说明。 2.TreeView控件和ListView控件的作用?如何联合使用这两
个控件显示数据库中的数据?
{ TreeNode rootNode = new TreeNode("山东信息职业技术学院");//创 建根节点 TreeNode sonNode1 = new TreeNode("计算机工程系");//创建子节点
sonNode1.Nodes.Add("07计算机1班");//添加二级子节点 sonNode1.Nodes.Add("07计算机2班"); rootNode.Nodes.Add(sonNode1);//将子节点添加到根节点中 TreeNode sonNode2 = new TreeNode("电子工程系"); sonNode2.Nodes.Add("07机电1班"); sonNode2.Nodes.Add("07机电2班");
注意:在这儿之所以要设置valueMember属性,是为了用户选中某一个 专业名称时,可通过ComboBox控件的SelectedValue属性返回字段“专 业编号”的值。
5.1.3知识点
3.查询的实现 班级信息维护窗体中的“查询”按钮的关键代码如下:
string fieldName = cbxCondition.Text;//获取查询的字段 string findValue = txtFindValue.Text.Trim();//获取查询值 da = new SqlDataAdapter("select * from viewClass where " + fieldName + " like '%" + findValue + "%'", conn);//通过创建适配器对象 进行查询
班级信息浏览 false CenterScreen
窗体的标题文本 窗体的最大化按钮失效 窗体启动时位于屏幕中心
Label
TreeView ListView
FormBorderStyle
Name Name Name
FixedSingle label1 lblClassNum treeView1 listView1
}
else
{ MessageBox.Show("没有查询到符合条件的记录!");
}
5.2 班级信息浏览窗体设计
5.2.1 班级信息浏览窗体界面设计
班级信息浏览窗体及主要控件的主要属性设置
窗体及控件类 型
属性名称 Name
属性值 frmClassBrowse
说明 窗体的名称
Form
Text MaximizeBox StartPosition
第5章班级信息管理模块设计
❖ 5.1 班级信息维护窗体设计 ❖ 5.2 班级信息浏览窗体设计
5.1 班级信息维护窗体设计
该窗体的设计步骤为: 选中项目中的ClassInfo文件夹,右击,从快捷菜单中,选择“添
加”---“Windows窗体”,在“添加新项”对话框中,输入窗体名称: frmClassManage.cs,单击“添加”后,该窗体便添加到项目中的文件 夹ClassInfo中。然后对该窗体进行界面设计和代码设计。
窗体的大小固定 显示操作说明 显示选中节点包含的班级数 以树形结构显示所有班级 显示班级详细信息
5.2.2 班级信息浏览窗体代码实现
编程分析: 该窗体启动时,需要在treeView1控件中填充树,即需
要从数据库中查询所有的系名称和该系包括的所有班级名称, 将其作为节点添加到树中,这些要在窗体的Load事件中实现。 在树中选中节点时,需要编写AfterSelect事件,将选中节点 包括的班级详细信息显示到listView1控件中。 代码略。
rootNode.Nodes.Add(sonNode2); treeView1.Nodes.Add(rootNode);//将根节点添加到树中 treeView1.ExpandAll();//展开所有节点
}
5.2.3 知识点
1.TreeView控件的使用
TreeNode节点类的常用属性、事件及方法
conn.Close(); dgvClass.DataSource = ds.Tables["班级表"]; lblClassNum.Text = "共有"+count.ToString()+"个班级"; } 。。。
}
5.1.3知识点
2.再谈ComboBox控件与数据源的绑定
班级信息维护窗体中,将cbxSpeciality控件与数据源绑定时,执行了如 下代码:
5.1.1 班级信息维护窗体界面设计 5.1.2 班级信息维护窗体代码实现
5.1.1 班级信息维护窗体界面设计
详细的界面设计步骤参考课本实现。
5.1.2 班级信息维护窗体代码实现
编程分析:
该窗体的编程思路与第4章的系别设置窗体有相同的 地方,但也有不同之处。
主要包括如下几个方面:该窗体一启动时,需要向 ComboBox控件添加列表项的值;表格控件dgvClass中的数 据来源于视图viewClass;该窗体选择查询条件和输入查询 值后,单击“查询”按钮,能查询出符合条件的数据显示到 表格控件dgvClass中。 代码略。
方法
收起节点
方法
展开节点
事件
每当节点被选择后触发该事件
1.TreeView控件的使用
5.2.3 知识点
要将TreeView控件从数据库得到数据来创建树,需按如下步骤:
(1)从数据库查询出DataSet (2)创建父节点TreeNode (3)用循环语句从表中查询每一行 (4)实例化子节点,把要显示的数据字段值赋给TreeNode对象,然后将子节点
private void FillDataGridView()//通过视图,填充表格数据 {// da为数据适配器对象、conn为连接对象
da = new SqlDataAdapter("select * from viewClass order by ID", conn);
DataSet ds = new DataSet(); conn.Open(); int count = da.Fill(ds, "班级表");
da = new SqlDataAdapter("select 专业编号,专业名称 from 专业表", conn); DataSet ds2 = new DataSet(); conn.Open(); da.Fill(ds2, "专业表"); conn.Close(); cbxSpeciality.DataSource = ds2.Tables["专业表"]; cbxSpeciality.DisplayMember = "专业名称"; //设置要显示的字段; cbxSpeciality.ValueMember = "专业编号";//设置返回值字段
5.2.3 知识点
1.TreeView控件的使用
TreeView控件是以树型结构形式展示数据,主要作用是可以直观的让 用户浏览数据。TreeView中的数据可以在设计时定义,也可以在运行时 添加 。程序开发时一般要Form1_Load(object sender, EventArgs e)
名称
类型
说明
Nodes Text SelectedNode Collapse ExpandAll AfterSelect
属性 属性
该属性是一个集合,包含了该节点的所有子节点。具有Add、Remove和 Clear方法等,分别用来添加节点、删除节点和清空所有节点。
用来指定该节点的标题
属性
用来指定选定的节点
5.1.3知识点
1.将视图中的数据显示到DataGridView控件中 将视图中的数据显示到窗体中的DataGridView控件中,和从数据表
中得到数据显示到控件中是类似的。不过要执行的查询语句select命令 行中原来的表对象换成视图对象即可。 例如,班级信息维护窗体中显示viewClass视图中的数据到表格控件 dgvClass中的代码如下:
例如,班级信息浏览窗体中下面的代码:
foreach (DataRow dr in dt.Rows)//遍历表中的每一行 {
ListViewItem lvi=new ListViewItem();//创建项 lvi.SubItems.Clear();//清除所有子项 lvi.SubItems[0].Text = dr[0].ToString();//得到第1列的值 lvi.SubItems.Add(dr[1].ToString());//得到第2列的值 lvi.SubItems.Add(dr[2].ToString());//得到第3列的值 lvi.SubItems.Add(dr[3].ToString());//得到第4列的值 lvi.SubItems.Add(dr[4].ToString());//得到第5列的值 lvi.SubItems.Add(dr[5].ToString());//得到第6列的值 listView1.Items.Add(lvi);//将项添加到项集合中 }
属性
是否可以多行选择
HeaderStyle
属性
列表头的样式,是否响应单击事件
Columns Items
属性 属性
通过这个属性可以访问列集合,通过该集合,可以增加 或删除列
列表视图中的项集合,通过Add方法可添加项
5.2.3 知识点
相关主题