第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编 课程网站:http://www.zjcourse.com/csharp 第十讲 学生成绩管理系统(一) 《C#程序设计》
目录 CONTENTS 学习目标 学习内容 课堂实践
本讲学习目标 AIMS 1 了解系统整体设计 2 掌握数据库设计 3 掌握ADO.NET基础知识 4 掌握ADO.NET的使用方法
系统分析 CONTENT
系统分析 CONTENT
数据库设计 CONTENT
数据库设计 CONTENT
数据库设计 CONTENT
系统框架 CONTENT
系统框架 CONTENT
登录模块设计 CONTENT
登录模块设计—相关知识 CONTENT 1.ADO.NET概述 ADO.NET 提供对诸如 SQL Server 和 XML 这样的数据源以及通过 OLE DB 和 ODBC 公开的数据源的一致访问。共享数据的使用方应用程序可以使用 ADO.NET 连接到这些数据源,并可以检索、处理和更新其中包含的数据。
登录模块设计—相关知识 CONTENT ADO.NET用于访问和操作数据的两个主要组件是 .NET Framework 数据提供程序和 DataSet。
登录模块设计—相关知识 CONTENT
登录模块设计—相关知识 CONTENT
Connection对象 CONTENT Connection对象用于连接数据库。 连接SQL Server数据库使用的SqlConnection和连接OLEDB数据源使用的OledbConnection,其中OLEDB数据源主要指ACCESS数据库。
Connection对象 CONTENT
Connection对象 CONTENT SqlConnection对象连接SQL Server示例: string strCon = "Data Source=localhost;database=student;uid=sa;pwd="; SqlConnection sqlCon = new SqlConnection(strCon); sqlCon.Open(); OleDbConnection对象连接ACCESS数据库示例: string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath.ToString() + "\\student.mdb"; OleDbConnection oledbCon = new OleDbConnection(strCon); oledbCon.Open();
Command对象 CONTENT 使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 当打开数据库后,如果想执行数据库数据的添加、删除和修改,则可以通过Command对象的ExecuteNonQuery方法直接执行;如果执行数据库的查询工作,可以通过DataAdapter对象的Fill方法,将查询的数据结果写入DataSet中。
Command对象 CONTENT
Command对象 CONTENT
Command对象 CONTENT SqlCommand对象执行添加、删除、修改命令代码示例: string sql = "insert into tb_student values (‘09011121’,’张三’,’男’,20)"; SqlCommand sqlCom = new SqlCommand(sql,sqlCon); sqlCom.ExecuteNonQuery(); OleDbCommand对象执行添加、删除、修改命令代码示例: OleDbCommand oledbCom = new OleDbCommand(sql, oledbCon); oledbCom.ExecuteNonQuery();
DataAdapter对象和DataSet CONTENT DataAdapter 是 DataSet 和 数据源之间的桥接器,用于检索和保存数据。DataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill和 Update来提供这一桥接。 当 DataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列。
DataAdapter对象和DataSet CONTENT
DataAdapter对象和DataSet CONTENT ADO.NET DataSet 是数据的一种内存驻留表示形式,无论它包含的数据来自什么数据源,都会提供一致的关系编程模型。DataSet 表示整个数据集,其中包含对数据进行包含、排序和约束的表以及表间的关系。 使用 DataSet 的方法有若干种,这些方法可以单独应用,也可以结合应用。 (1)以编程方式在 DataSet 中创建 DataTable、 DataRelation 和 Constraint,并使用数据填充表。 (2)通过 DataAdapter 用现有关系数据源中的数据表填充 DataSet。 (3)使用 XML 加载和保持 DataSet 内容。
DataAdapter对象和DataSet CONTENT
DataAdapter对象和DataSet CONTENT SqlDataAdapter和DataSet配合使用的示例: SqlDataAdapter da = new SqlDataAdapter(sqlCom); DataSet ds = new DataSet(); da.Fill(ds); OleDbDataAdapter和DataSet配合使用的示例: OleDbDataAdapter oledbDa = new OleDbDataAdapter(oledbCom); oledbDa.Fill(ds);
DataReade对象 CONTENT DataReader对象可从数据源提供高性能的数据流,其从数据源中获取只读和只进数据,在任何时候都只在内存中保存一行数据,减少了内存开销,提高了性能。 若要创建 OleDbDataReader,必须调用 OleDbCommand 对象的 ExecuteReader 方法,而不能直接使用构造函数。 在使用 DataReader 时,关联的 Connection 正忙于为 DataReader 服务,对 Connection 无法执行任何其他操作,只能将其关闭。除非调用 DataReader 的 Close 方法,否则会一直处于
DataReade对象 CONTENT 此状态。例如,在调用 Close 之前,无法检索输出参数。 DataReader 的用户可能会看到在读取数据时另一进程或线程对结果集所做的更改。但是,确切的行为与执行时间有关。 当DataReader 关闭后,只能调用 IsClosed 和 RecordsAffected 属性。尽管当 DataReader 存在时可以访问 RecordsAffected 属性,但是,请在返回 RecordsAffected 的值之前始终调用 Close,以确保返回精确的值。
DataReade对象 CONTENT string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath.ToString() + "\\student.mdb"; OleDbConnection oledbCon = new OleDbConnection(strCon); oledbCon.Open(); string sql = "select Sid from Studentinfo"; OleDbCommand oledbCom = new OleDbCommand(sql, oledbCon); OleDbDataReader oledbDr = oledbCom.ExecuteReader(); while (oledbDr.Read()) { cboSid.Items.Add(oledbDr[0]);//装载学号值 } oledbDr.Close(); oledbCon.Close();
课堂实践 PRACTICE 1、创建数据库及设计数据表 2、连接数据库,并模仿建立登录程序
THANK YOU 更多资源,请访问课程网站:http://www.zjcourse.com/csharp