《数据库操作》PPT课件.ppt
《《数据库操作》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库操作》PPT课件.ppt(50页珍藏版)》请在装配图网上搜索。
1、ZJWCHC 数据库操作 第 14章 2 回顾 ADO.NET 的功能和组成 使用 Connection 对象连接到数据库 使用 Command 对象查询单个值 ,调用 ExecuteScalar()方法 检查以下代码的错误: string constr = Data Source= . ;Initial Catalog=MySchool;User ID=sa ; SqlConnection con = new SqlConnection( ); con.Open(); /操作数据库代码省略 Con.Close(); 3 回顾 检查代码错误: sql = select count(*) fro
2、m admin where loginid=loginId and loginpwd=loginpwd; SqlCommand cmd = new SqlCommand(sql); cmd.Parameters.AddWithValue(loginid, txtLogInId.Text.Trim(); cmd.Parameters.AddWithValue(loginpwd, txtLogInPwd.Text.Trim(); con.Open(); int cnt = (int)cmd.ExecuteScalar(); con.Close(); if (cnt = 1) MessageBox.
3、Show(欢迎登录 ); mainform mainfrm = new mainform(); this.Hide(); mainfrm.ShowDialog(); else MessageBox.Show(用户名或密码不存在! ); SqlCo mand cmd = new Sq and(s , con); con.Open(); 4 本章目标 掌握使用 Command与 DataReader对象对数据库进 行查询操作 掌握使用 Command进行更新、删除、插入操作 掌握列表视图 ListView控件的使用方法 5 14.1DataReader对象 问题: 通过班级统计人数时,班级编号(或
4、班级名称)输入非常麻烦。 解决方法: 在 class表中存在班级编号或名称,可以采用 DataReader 对象直接从数据库中读出来在组合框中显示。 DataReader对象 :DataReader对象用于从数据源中读取向前 的、只读数据流,是一个简易的数据集,使用它读取记录时通常 比从 DataSet更快。 DataReader对象是 Command对象的 ExecuteReader方法从数据源中检索数据时创建的。 6 操作步骤 步骤: 1、 定义 SQL 语句 2、创建 Command 对象 3、打开连接 4、 创建 DataReader对象,并获取 执行命令所 得的数据 5、关闭连接 7
5、 DataReader 对象 每次读取一行数据 命名空间 对应的 DataReader 对象 System.Data.SqlClient SqlDataReader System.Data.OleDb OleDbDataReader System.Data.Odbc OdbcDataReader System.Data.OracleClient OracleDataReader 8 DataReader创建和使用 1) DataReader对象的创建 SqlDataReader r= cmd.ExecuteReader(); 2) DataReader.read()方法 :移到下一行并读此行
6、. 函数返回 bool型。若读出的行有数据则返回 true. 3) DataReader对象的使用方法 Command对象的 ExecuteReader方法 . 返回一个 SqlDataReader对象或 OleDbDataReader对象 . 主要用于查询 9 使用 DataReader 查询数据 添加班级组合框中的班级编号 处理窗体 Load 事件 使用 DataReader 读取班级编号 10 示例 1 代码分析 关键代码回顾: /创建 SQL语句 /创建 command对象 /打开连接 / 执行查询 SqlDataReader dataReader = command.ExecuteR
7、eader(); string classname = “”; / 班 级名称 / 循环读出所有的班级名,并添加到班级列表框中 while (dataReader.Read() classid = (string)dataReader0; cboclass.Items.Add(classid); /cboclass为组合框 dataReader.Close(); /关闭连接 循环读取数据行 添加到组合框中 11 DataReader 的主要成员 属性 说明 HasRows 是否返回了结果 方法 说明 Read 前进到下一行记录 Close 关闭 DataReader 对象 DataReader
8、 的主要成员: 12 DataReader 使用步骤小结 使用 DataReader 检索数据的步骤: 1、创建 Command 对象 2、调用 ExecuteReader() 创建 DataReader 对象 3、使用 DataReader 的 Read() 方法逐行读取 数据 4、读取某列的数据, (type)dataReader 5、关闭 DataReader 对象 获取某列的值: 方法一:指定列的索引,从 0开始 方法二:指定列名 注意: DataReader 使用后必须关闭 13 示例 2:按班级编号查询班级信息 编写组合框的 SelectedIndexC hanged事件 根据组合
9、框中选值, 读取该班的名称、班 主任 并统计选中班级的人 数 14 示例 2 代码分析 关键代码回顾: string sql = string.Format(select class_name,monitor from class where class_id=0“,cboclass.Text); /创建 command对象 /打开连接 / 执行查询 SqlDataReader dr = cmd.ExecuteReader(); / 循环读出指定的班级名,并添加到班级列表框中 if (dr.HasRows) dr.Read(); textBox1.Text = dr0.ToString();
10、textBox2.Text = dr1.ToString(); dr.Close(); /关闭连接 读取指定班级的班级 名称和班主任 15 SQL语句说明 : 1.参数查询 string sqlstr = select * from class where class_id=classid; cmd.Parameters.AddWithValue(classid, comboBox1.Text); 2.文本字符串查询 按 class_id号 (字符型字段或日期型字段)查询 : string sqlstr = select * from student where class_id= +”+te
11、xtBox1.Text+”; 或 string sqlstr =string.Format( select * from student where class_id=0“,textBox1.Text.Trim() ; 按成绩(数值型字段)查询 : string sqlstr = select * from student_course where grade= + textBox1.Text; 或 string sqlstr = string.Format( “select * from student_course where grade= 0”, textBox1.Text) ; 16
12、课堂练习 从部门表中,根据部门名称读取该部门的所有信息及 教师人数 17 课后练习 若用户类型为学生,则从 Student表中,根据学号读 取该学生用户的所有信息 注意:出生日期为 DateTimePicker控件,由 Value获取选中的日期值,为 DateTime类型 18 14.2操作数据 应用程序 毛毛,浙江水专,良好 毛毛 姓名: 学校: 浙江水专 成绩: 良好 如何对数据库的数据进行 增删改 ? 使用 ExecuteNonQuery() 方法 数 据 库 19 操作数据示例 怎样新增学生? 处理“保存”按钮的 Click事件 使用 ExecuteNonQuer y() 方法向数据库
13、增 加记录 20 操作数据示例 1代码分析 关键代码回顾: / 创建 command对象 SqlCommand cmd = new SqlCommand(sql, DBoption.connection); / 打开数据库连接 DBoption.connection.Open(); / 执行命令 int result = comd.ExecuteNonQuery(); 返回受影响记录的行数 21 操作数据示例 1代码分析 /性别数据转换 int sex=1; if (!rdoMale.Checked) sex= 0; /创建 SQL字符串 string sql = string.Format(
14、insert into student (student_id,student_name,sex,birth,class_id,home_addr) values(0,1,2,3,4,5) , txtStudentNO.Text.Trim(), txtStudentName.Text.Trim(), sex, dtpbirth.Value, cboclass.Text.Trim(), txtaddr.Text.Trim(); / 创建 command对象 SqlCommand cmd = new SqlCommand(sql, DBoption.connection); / 打开数据库连接 D
15、Boption.connection.Open(); /执行命令 int i=cmd.ExecuteNonQuery(); /关闭连接 DBoption.connection.Close(); if(i0) MessageBox.Show(添加学生信息成功 ); else MessageBox.Show(添加学生信息失败 ); 22 23 SQL参数字符方法: string sql = insert into student(student_id,student_name,sex,birth,class_id,home_addr) values(studentid,studentname,se
16、x,birth,classid,homeaddr) ; SqlCommand cmd = new SqlCommand(sql, DBoption.connection); cmd.Parameters.AddWithValue(studentid,txtStudentNO.Text.Trim(); cmd.Parameters.AddWithValue(studentname,txtStudentName.Text.Trim(); cmd.Parameters.AddWithValue(sex, rdoMale.Checked); cmd.Parameters.AddWithValue(bi
17、rth, dtpbirth.Value); cmd.Parameters.AddWithValue(classid, cboclass.Text.Trim(); cmd.Parameters.AddWithValue(homeaddr, txtaddr.Text.Trim(); try DBoption.connection.Open(); cmd.ExecuteNonQuery(); DBoption.connection.Close(); MessageBox.Show(添加学生信息成功 ); catch (Exception ex) MessageBox.Show(ex.Message)
18、; DBoption.connection.Close(); 24 ExecuteNonQuery()方法小结 该方法 执行 指定的 sql 语句 返回 受影响的行数 使用 ExecuteNonQuery() 的步骤小结: 1、创建 Connection 对象 2、定义 sql 语句 3、创建 Command 对象 4、执行 ExecuteNonQuery() 方法 5、根据返回的结果进行处理 25 课堂练习 1: 编写一个添加学生班级的窗体 26 课堂练习 2修改和删除数据 怎样修改和删除班级? 处理“修改”按钮的 Click事件 处理“删除”按钮的 Click事件 使用 ExecuteNo
19、nQuery() 方法向数据库更新记录 27 操作数据库总结 操作数据库相关对象 相关对象 用途 Connection 对象 连接数据库 Command 对象 执行 SQL 命令 DataReader 对象 读取查询结果中的数据 28 使用命令操作数据库 使用 Command 对象 检索 数据库的步骤 创建查询用 sql 语句 创建 Connection 对象 创建 Command 对象 返回 DataReader 对象 使用 DataReader 的 Read() 方法逐行读取结果 使用 列名或列的索引从 DataReader 中 获取某列的值 返回单个值 执行 ExecuteReader(
20、) 方法 执行 ExecuteScalar() 方法 29 使用命令操作数据库 使用 Command 对象 更改 数据库的步骤 创建 sql 语句 Insert、 Update、 Delete 创建 Connection 对象 创建 Command 对象 返回受影响的行数 执行 ExecuteNonQuery() 方法 30 综合案例 要求通过列表视图显示管理员用户的信息 要求能实现添加、删除、修改管理员的操作 31 提示: 1、通过 DataReader对象读出管理员所有信息, 放在列表视图 ListView显示 2、在下面文本框中显示列表视图选定的用户信 息 3、分别执行添加、修改和删除操
21、作 32 控件进阶 列表视图控件 ListView :列表视图控件 以特定样式或视图类型显示列表项 33 ListView 控件属性和方法 属性 说明 Columns “详细信息”视图中显示的列 SelectedItems 选中的项的集合 GridLines 指示在是否显示网格线 FullrowSelect 单击某项时,只选择该项,还是选整行 View 指定显示五种视图中的哪一种视图 LargeImageList 设置大图标视图显示的图标 事件 说明 SelectedIndexChanged 选中的项发生变化时激发 方法 说明 Clear() 移除 ListView中的所有项 ListView
22、 控件的主要属性和方法: ListView 控件名的前缀是 “lvw“ 34 列表视图项、子项 列的集合 Columns 项的集合 Items 列表视图项 ListViewItem 列表视图项的子项 ListViewSubItem 子项的集合 SubItems 35 Columns集合和 Column 对象 Columns 属性 :表示控件中出现的所有列标题 的集合 ColumnHeader列标题是 ListView 控件中 包含标题文本的一个项 ColumnHeader对象定义在控件的 View 属 性设置为“ Details”值时,作为 ListView 控 件的一部分显示的那些列 如果
23、ListView 控件没有没有任何列标题,并 且 View 属性设置为 Details,则 ListView 控件不显示任何项 36 添加列标题 方法一:设置 ListView对象的 Columns属性 方法三: lvwclass.Columns.Add ( “班级编号 , 60 , HorizontalAlignment.Right ) ; 添加多个列应该 如何做? 方法二: ColumnHeader objHeader=new ColumnHeader(); objHeader.Text=“班级编号 ; objHeader.TextAlign=HorizontalAlignment.Cen
24、ter ; objHeader.Width=100; lvwclass.Columns.Add(objHeader); 37 项集合和项对象 ListView 控件的 Items 属性:表示包含控件 中所有项的集合 该 属性返回 ListView.ListViewItemCollection,可以 用于 ListView 中添加新项、 删除 项或计算可用 项数 38 添加记录 ListViewItem lstItem = new ListViewItem ( ) ; lstItem.SubItems.Clear ( ) ; lstItem.SubItems0.Text = dr“class_i
25、d.ToString ( ) ; /第 0列 lstItem.SubItems.Add ( dr“class_name.ToString ( ) ) ; /第 1列 。 lstItem.SubItems.Add ( dr“monitor.ToString ( ) ) ; /第 n列 lvwclass.Items.Add(lstItem) 实例化一个 ListViewItem 设置各列的数值 将定义好的数值添加到 ListView里面 添加多行数据怎么办? 39 列表视图创建步骤 1、添加 SplitContainer容器控件 属性 Orientation为水平 Dock属性为 fill 2、添
26、加两个 imagList控件 iml1,iml2 分别添加一个图像( 16*16, 32*32) 3、添加 ListView控件 设置 Column属性,添加三列 Dock属性为 fill View属性为 Details MultiSelect属性为 False GridLines属性为 True FullrowSelect属性为 True SmallImageList属性为 iml1 LargImageList属性为 iml2 40 例 3 代码分析 关键代码回顾 查询信息 : / 执行查询用户命令 dataReader dr = command.ExecuteReader(); while
27、 (dr.Read() / 读取各列的数据 loginId = (string) drLoginId; / 向 ListView 中添加记录 dr.Close(); / 关闭 DataReader 对象 回顾 DataReader 的使用步骤 41 示例 3 代码分析 关键代码回顾 添加记录到 ListView: / 创建一个 ListView项 ListViewItem li = new ListViewItem(class_id,0); / 向当前项中添加子项 li.SubItems.AddRange( new string studentName, studentNO, userStat
28、e ); / 向 ListView中添加一个新项 lvclass.Items.Add(li); 创建列表视图项 ,0设定 图像 添加列表视图项 添加列表视图项的子项 42 快捷菜单控件 ContextMenuStrip 弹出菜单控件 创建步骤: 1、添加 ContextMenuStrip菜单控件 2、添加菜单选项如:大图标、小图标、详细 列表 3、编写各菜单选项 click事件代码 如大图标: 4、设置列表视图的 ContextMenuStrip 属 性,建立其他控件与快捷菜单关联 43 列表视图显示所有信息代码 44 快捷菜单关键代码 45 详细信息显示代码 46 在 DBoption类中编写一个统一更新记录的方法 47 添加按钮代码 48 删除按钮代码 49 修改按钮代码 50 习题 将课堂练习做完 请做一个按班级编号查询该班所有学生信息的 窗体
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。