1、,学校:,北大青鸟,成绩:,优秀,DataReader,怎样读取数据库的数据?,使用 DataReader 对象,数 据 库,DataReader 对象,每次读取一行数据,使用 DataReader 查询数据,在数据库操作类中创建读取学生列表方法使用 DataReader 读取学生学号和姓名在业务信息类中创建输出信息方法在菜单选项中添加输出信息方法,如何查看学生学号、姓名列表?,示例2代码分析,关键代码回顾:,示例2源代码,command.ExecuteReader();/执行查询,SqlDataReader reader=_dbOper.GetStudentList();/取得学生用户列表方
2、法/循环读取DataReaderwhile(reader.Read()Console.Write(readerStudentNo+t);Console.WriteLine(readerStudentName);/关闭DataReaderreader.Close();,循环读取数据行并显示,DataReader 的主要成员,DataReader 的主要成员:,DataReader 使用步骤小结,使用 DataReader 检索数据的步骤:1、创建 Command 对象2、调用 ExecuteReader()创建 DataReader 对象3、使用 DataReader 的 Read()方法逐行读
3、取数据4、读取某列的数据,(type)dataReader 5、关闭 DataReader 对象,获取某列的值:方法一:指定列的索引,从0开始方法二:指定列名,注意:DataReader 使用后必须关闭,指导实现学生姓名查询,训练要点:DataReader对象的使用需求说明:当管理员输入操作键“3”时,给予输入学号的提示,根据输入查询Student表中匹配学号的学生姓名,将学生学号和姓名一并输出,讲解需求说明,实现思路 1、在数据库操作类中创建查询学生姓名的方法 2、使用StringBuilder拼写带条件的Sql语句 3、使用DataReader对象的Read()方法读取学生姓名并返回 4、
4、在业务类中调用查询方法并输出返回的学生姓名难点指导:执行Command对象的ExecuteReader()方法得到Reader对象学号为主键,只能读取至多一行信息,固使用if语句,完成时间:25分钟,指导实现学生姓名查询,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,指导实现学生信息查询,训练要点:DataReader对象的使用Sql语句的拼写需求说明:当管理员输入操作键“4”时,给予输入学生姓名的提示,根据姓名模糊查询Student表中除密码外的全部信息并显示,年级根据实际编号显示年级名称,讲解需求说明,实现思路 1、在数据库操作类中创建查询学生信息的方法 2、使用
5、StringBuilder拼写内连接的Sql语句 3、使用DataReader对象的Read()方法循环读取学生信息 4、在业务类中调用查询学生信息的方法并输出关键代码:,完成时间:25分钟,指导实现学生信息查询,SELECT A.StudentNo,A.StudentName,A.Sex,B.GradeName,A.Phone,A.Adress,A.BornDate,A.EmailFROM Student as A,Grade as BWHERE StudentName like%学生姓名%AND A.GradeId=B.GradeId,操作数据,应用程序,毛毛,北大青鸟,良好,毛毛,姓名:
6、,良好,ExecuteNonQuery,如何对数据库的数据进行增删改?,使用 ExecuteNonQuery()方法,数 据 库,操作数据示例,1、构件增加年级信息的Sql语句2、创建SqlCommand对象3、使用 ExecuteNonQuery()方法向数据库增加记录4、处理返回结果,如何实现新增年级信息呢?,示例 3代码分析,关键代码回顾:,示例3源代码,StringBuilder sb=new StringBuilder();sb.AppendLine(INSERT INTO);sb.AppendLine(Grade);sb.AppendLine(VALUES);sb.AppendLi
7、ne(+gradeName+);/创建command对象SqlCommand command=new SqlCommand(sb.ToString(),conn);/执行命令command.ExecuteNonQuery();,返回受影响记录的行数,单引号的位置,ExecuteNonQuery()方法小结,该方法执行指定的 sql 语句返回受影响的行数,使用 ExecuteNonQuery()的步骤小结:1、创建 Connection 对象2、定义sql 语句3、创建 Command 对象4、执行 ExecuteNonQuery()方法5、根据返回的结果进行处理,练习实现年级信息的创建,需求说
8、明:实现将管理员输入的年级名称添加到年级表中,并输出添加结果提示,完成时间:20分钟,指导实现出生日的修改,训练要点:类型转换Command对象的ExecuteNonQuery()方法需求说明:当管理员输入操作键“6”时,给予输入要修改的学生学号和修改后的出生日的提示,根据学号更新Student表中的出生日出生日输入格式错误、更新成功以及异常发生给出相应提示信息确认数据库中的数据被成功更新,讲解需求说明,实现思路 1、在数据库操作类中创建更新方法 2、使用StringBuilder拼写条件更新的Sql语句 3、使用Command对象的ExecuteNonQuery()方法根据学号更新出生日 4
9、、在业务类中调用更新方法,使用异常处理捕获输入错误的出生日难点指导:执行Command对象的ExecuteNonQuery()方法执行对数据库的修改操作可以使用Convert.ToDateTime()方法转换管理员输入的出生日,完成时间:25分钟,指导实现出生日的修改,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,练习实现学生信息的删除,需求说明:当管理员输入操作键“7”时,给予输入删除的学生学号的提示根据学号删除Student表中的学生信息确认数据库中的数据被成功删除,完成时间:20分钟,总结,简述使用DataReader查询数据的步骤ExecuteNonQuery()方法返回结果是什么?,作业,课后作业必做教员备课时在此添加内容选做教员备课时在此添加内容提交时间:xxx提交形式:xxx预习作业背诵英文单词教员备课时在此添加内容,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1