北大青鸟C#课件系列7
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作数据
如何对数据库的数据进行增删改?
使用 ExecuteNonQuery() 方法
应用程序
姓名: 毛毛 学校: 北大青鸟 成绩: 良好 毛毛,北大青鸟,良好
数 据 库
操作数据示例
怎样新增学员用户?
处理“保存”按钮的 Click事件 使用 ExecuteNonQuery() 方 法向数据库增加记录
注意:DataReader 使用后必须关闭
小结
参考代码 string sql = "SELECT StudentName FROM Student 编写控制台程序,从MySchool数据库的Student表中, WHERE StudentName LIKE '李%'"; 读取出所有姓“李”学员的姓名 SqlCommand command = new SqlCommand(sql, connection); connection.Open(); SqlDataReader dataReader = command.ExecuteReader(); Console.WriteLine("查询结果:"); while (dataReader.Read()) { Console.WriteLine((string)dataReader["StudentName"]); } dataReader.Close();
查询数据综合示例
如何实现学员信息查询功能?
使用DataReader 查询数据
使用ListView 控件显示数据
演示示例3:学员信息查询功能
示例3 代码分析
关键代码回顾——查询信息: 示例3源代码
// 执行查询用户命令 dataReader = command.ExecuteReader(); …… while (dataReader.Read()) 回顾 DataReader 的使用步骤 { // 读取各列的数据 loginId = (string)dataReader["LoginId"]; …… // 向 ListView 中添加记录 } dataReader.Close(); // 关闭 DataReader 对象
为什么使用 DataReader
怎样读取数据库的数据?
使用 DataReader 对象
应用程序 姓名: 毛毛 学校: 北大青鸟 成绩: 优秀 毛毛,北大青鸟,优秀
数 据 库
DataReader 对象
每次读取一行数据
命名空间 System.Data.SqlClient System.Data.OleDb System.Data.Odbc System.Data.OracleClient 对应的 DataReader 对象 SqlDataReader OleDbDataReader OdbcDataReader OracleDataReader
本章任务
MySchool 系统的学员用户信息的增删改查
实现学员信息的模糊查询 实现添加学员用户功能 实现修改学员用户状态功能 实现删除学员用户功能
本章目标
会使用 DataReader 对象检索数据 会使用 Command 对象操作数据 掌握 ListView 控件的使用 掌握 ContextMenuStrip 控件的使用
返回受影响记录的行数
ExecuteNonQuery()方法小结
该方法执行指定的 sql 语句 返回受影响的行数
使用 ExecuteNonQuery() 的步骤小结: 1、创建 Connection 对象 2、定义sql 语句 3、创建 Command 对象 4、执行 ExecuteNonQuery() 方法 5、根据返回的结果进行处理
演示示例2:向数据库增加记录
示例 2 代码分析
关键代码回顾: 示例2源代码
// 创建command对象 SqlCommand command = new SqlCommand(sql, DBHelper.connection); // 打开数据库连接 DBHelper.connection.Open(); // 执行命令 int result = command.ExecuteNonQuery(); ……
小结
参考代码
string connStr = "…"; 向数据库中添加年级 SqlConnection connection = new SqlConnection(connStr);
假设数据库连接字符串已知为 connStr // 插入记录用的 SQL 语句 将添加年级名称部分的代码补 string sql = string.Format( 充完整 "INSERT INTO Grade (GradeName) VALUES ('{0}')",
示例3 代码分析
关键代码回顾——添加记录到 ListView: 示例3源代码
创建列表视图项 // 创建一个ListView项 ListViewItem lviStudent = new ListViewItem(loginId); // 将ID放在Tag中 lviStudent.Tag = (int)dataReader["StudentID"]; // 向ListView中添加一个新项 lvStudent.Items.Add(lviStudent);
txtGradeName.Text); private void btnAdd_Click(object sender, EventArgs e) // 创建 Command 对象 { SqlCommand command = new SqlCommand(sql, connection); string connStr // 打开数据库连接 = "……"; SqlConnection connection.Open();connection = new SqlConnection(connStr); // 向数据库中添加年级名称的代码 // 执行插入命令 } int result = command.ExecuteNonQuery(); connection.Close(); // 关闭数据库连接
操作数据综合示例
删除学员用户信息
演示示例5:删除学员用户信息
小结
参考代码 在示例5中,实现修改学员状态为“活动”的功能
// 关键代码 // 修改用sql语句 string sql = string.Format( "Update Student SET UserStateId=1 WHERE StudentID={0}", (int)lvStudent.SelectedItems[0].Tag); // 创建Command对象 SqlCommand command = new SqlCommand(sql, DBHelper.connection); DBHelper.connection.Open(); // 打开数据库连接 result = command.ExecuteNonQuery(); // 执行命令 DBHelper.connection.Close(); // 关闭数据库连接
项的集合 Items
子项的集合 SubItems
列表视图项 ListViewItem
列表视图项的子项 ListViewSubItem
操作数据综合示例
修改学员用户的状态
使用 ExecuteNonQuery() 方法操作数据
使用快捷菜单列出各个操作
演示示例4:修改用户状态为“非活动”
示例4 代码分析
1、创建 Command 对象 2、调用 ExecuteReader() 创建 DataReader 对象 3、使用 DataReader 的 Read() 方法逐行读取数据 4、读取某列的数据,(type)dataReader[ ] 5、关闭 DataReader 对象
获取某列的值: 方法一:指定列的索引,从0开始 方法二:指定列名
使用 DataReader 查询数据
添加年级组合框中的年级名称
处理窗体 Load 事件 使用 DataReader 读取年级 名称
演示示例1:使用 DataReader 读取数据
示例1 代码分析
关键代码回顾: 示例1源代码
// 执行查询 SqlDataReader dataReader = command.ExecuteReader();
关键代码回顾——修改用户状态: 示例4源代码
回顾 ExecuteNonQuery() 的使用步骤
// 修改用sql语句 string sql = string.Format( "Update Student SET UserStateId=0 WHERE StudentID={0}", (int)lvStudent.SelectedItems[0].Tag); // 创建Command对象 SqlCommand command = new SqlCommand(sql, DBHelper.connection); DBHelper.connection.Open(); // 打开数据库连接 result = command.ExecuteNonQuery(); // 执行命令 DBHelper.connection.Close(); // 关闭数据库连接 FillListView(); // 重新查询信息填充列表视图
ListView 控件属性和方法
ListView 控件的主要属性和方法:
属性 Columns SelectedItems View 方法 Clear() 说明 “详细信息”视图中显示的列 选中的项的集合 指定显示五种视图中的哪一种视图 说明 移除ListView中的所有项
列表示图项、子项
列的பைடு நூலகம்合 Columns
创建 Command 对象 返回单个值 执行 ExecuteScalar() 方法 返回 DataReader 对象 执行 ExecuteReader() 方法
控件进阶——快捷菜单控件
ContextMenuStrip :快捷菜单控件 为控件指定快捷菜单:ContextMenuStrip 属性
显示与控件关联的菜单
ContextMenuStrip属性和方法
ContextMenuStrip 控件的主要属性和方法
属性 DisplayStyle Image Text 方法 Click 说明 指定是否显示图像和文本 显示在菜单项上的图像 显示在菜单项上的文本 说明 单击事件,单击菜单项时发生
循环读取数据行 添加到组合框中
DataReader 的主要成员
DataReader 的主要成员:
属性 HasRows 方法 Read Close 说明 是否返回了结果 说明 前进到下一行记录 关闭 DataReader 对象
DataReader 使用步骤小结
使用 DataReader 检索数据的步骤:
第七章
用 ADO.NET 查询和操作数据库
回顾
Connection 对象的作用是什么? 什么是异常,用什么结构处理异常? ExecuteScalar() 方法返回什么?
预习检查
DataReader 对象的用途是什么? ExecuteNonQuery() 方法的功能是什么? ExecuteReader() 方法的功能是什么?
添加列表视图项
添加列表视图项的子项 // 向当前项中添加子项 lviStudent.SubItems.AddRange( new string[ ] { studentName, studentNO, userState });
控件进阶——列表视图控件
ListView :列表视图控件
以特定样式或视图类型显示列表项
string gradeName = ""; // 年级名称 // 循环读出所有的年级名,并添加到年级列表框中 while (dataReader.Read()) { gradeName = (string)dataReader[0]; cboGrade.Items.Add(gradeName); } dataReader.Close();
操作数据库总结
操作数据库相关对象
相关对象 Connection 对象 Command 对象 DataReader 对象 用途 连接数据库 执行 SQL 命令 读取查询结果中的数据
使用命令操作数据库
使用 Command 对象检索数据库的步骤
创建查询用 sql 语句 创建 Connection 对象