您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > c#-数据库应用知识PPT讲解学习
1理解数据库的基本概念,掌握数据绑定的实现方法,熟悉DataGridView、BindingSource等常用数据控件掌握ADO.NET主要对象的属性、方法及编程设置了解SQL的构成和语法,掌握基本数据操纵语句掌握数据库查询和更新(插入、删除、修改)的实现方法本章教学目标11.1数据库的基本概念典型的关系数据库产品AccessSQLServerOracle11.1.1表与记录11.1.2表的结构设计11.2数据绑定数据绑定(databinding)DataSetBindingSourceDataGridView只需编写少量代码,就可以实现数据库访问11.2.1设计时与数据控件的绑定在应用程序界面设计阶段,通过手工操作实现的数据绑定实例11.1例11.1利用数据绑定技术,以及DataGridView控件,不编写任何代码,实现数据库内容的查看操作步骤操作步骤操作步骤操作步骤操作步骤操作步骤自动生成的代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceex11_01{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoid学生基本情况表BindingNavigatorSaveItem_Click(objectsender,EventArgse){this.Validate();this.学生基本情况表BindingSource.EndEdit();this.tableAdapterManager.UpdateAll(this.studentDataSet);}privatevoidForm1_Load(objectsender,EventArgse){this.学生基本情况表TableAdapter.Fill(this.studentDataSet.学生基本情况表);}}}自动生成的代码privatevoid学生基本情况表BindingNavigatorSaveItem_Click(objectsender,EventArgse){this.Validate();this.学生基本情况表BindingSource.EndEdit();this.tableAdapterManager.UpdateAll(this.studentDataSet);}privatevoidForm1_Load(objectsender,EventArgse){this.学生基本情况表TableAdapter.Fill(this.studentDataSet.学生基本情况表);}11.2.2设计时与公共控件的绑定例11.2利用文本框、图片框和标签控件,实现数据库内容的查看、添加、删除、修改和保存,并查看相关联图片例11.2程序代码privatevoid学生基本情况表BindingNavigatorSaveItem_Click(objectsender,EventArgse){this.Validate();this.学生基本情况表BindingSource.EndEdit();this.tableAdapterManager.UpdateAll(this.studentDataSet);}privatevoidForm1_Load(objectsender,EventArgse){this.学生基本情况表TableAdapter.Fill(this.studentDataSet.学生基本情况表);pictureBox1.Load(@images\+学号TextBox.Text+.jpg);//加载图片}privatevoid照片TextBox_TextChanged(objectsender,EventArgse){pictureBox1.Load(@images\+学号TextBox.Text+.jpg);//加载图片}11.3ADO.NETADO.NET是专门用于数据库连接与访问的类。使用时,必须引用System.Data命名空间,还应根据数据源的类型,选择引用相关的命名空间。11.3.1ADO.NET的体系结构DataSetDataTable对象DataRelation对象DataRowDataColumnConstrainDataProviderDataAdapter对象SelectCommandInsertCommandDeleteCommandConnection对象UpdateCommandCommand对象DataReader对象1.DataProvider(数据提供程序)Connection建立数据源连接;Command生成并执行SQL语句,对数据库进行操作并返回数据DataReader接收由Command对象的ExecuteReader()方法返回的对象,每次只存储结果集当中的一个数据行DataAdapter通过Command对象执行SQL语句,将获得的结果集填充到DataSet对象中;将DataSet更新数据的结果返回到数据库数据库类型与命名空间引用Access数据库要求引用System.Data.OleDbSQLServer数据库要求引用System.Data.Sql2.DataSet(数据集)容纳DataProvider传递过来的数据库访问结果把应用程序的执行结果更新到数据库中可以看作是一种驻留在客户端的小型数据库,并与特定的数据库无关。11.3.2Connection对象实例11.3例11.3使用OleDbConnection对象建立与Access数据库student.mdb的连接。如果连接成功,则在消息框中显示“数据库连接已经成功建立”,否则报告错误信息。实例11.3程序代码usingSystem.Data.OleDb;//为了连接Access数据库,必须引用此命名空间namespaceex11_03{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidmenuFileOpen_Click(objectsender,EventArgse){stringstr=@Provider=Microsoft.Jet.OLEDB.4.0;DataSource=student.mdb;OleDbConnectionconn=newOleDbConnection(str);//创建数据库连接对象并初始化try{conn.Open();//打开数据库连接if(conn.State==ConnectionState.Open)richTextBox1.Text=数据库连接已经成功建立!;}catch(Exceptionex)//如果未能成功建立数据库连接,则捕获异常并报告错误信息{richTextBox1.Text=ex.Message.ToString();}finally{conn.Close();//使用结束后关闭数据库连接}}}}说明连接Access,必须引用System.Data.OleDb命名空间“Provider=Microsoft.Jet.OLEDB.4.0”意味着数据源为Access数据库“DataSource=student.mdb”指示了数据源路径student.mdb与应用程序可执行文件位于相同目录之下操作数据库的代码均在try…catch…finally结构中11.3.3Command对象通过Command对象传递对数据库操作的命令,并返回命令执行的结果实例11.4例11.4使用OleDbConnection对象建立与student.mdb的连接,使用OleDbCommand的ExecuteScalar()方法统计“学生基本情况表”中的男生人数。例11.4代码privatevoidmenuFileOpen_Click(objectsender,EventArgse){stringstr=@Provider=Microsoft.Jet.OLEDB.4.0;DataSource=student.mdb;OleDbConnectionconn=newOleDbConnection(str);//创建数据库连接对象并初始化try{conn.Open();//打开数据库连接if(conn.State==ConnectionState.Open)//如果连接正常建立则执行统计操作{OleDbCommandcmd=newOleDbCommand();//创建Command对象cmd.CommandText=selectcount(*)from学生基本情况表where[性别]='男';cmd.Connection=conn;//OleDbCommandcmd=newOleDbCommand(select*from学生基本情况表,conn);intmycount=(int)cmd.ExecuteScalar();//返回统计结果,转换成所需要的数据类型richTextBox1.Text=男生的人数=+mycount.ToString();}}catch(Exceptionex)//捕获出错信息并以消息框的形式显示{MessageBox.Show(ex.Message,数据库访问);}finally//使用结束后关闭数据库连接{conn.Close();}}核心代码stringstr=@Provider=Microsoft.Jet.OLEDB.4.0;DataSource=student.mdb;OleDbConnectionconn=newOleDbConnection(str);conn.Open();if(conn.State==ConnectionState.Open){OleDbCommandcmd=newOleDbCommand();cmd.CommandText=selectcount(*)from学生基本情况表where[性别]='男';cmd.Connection=conn;//OleDbCommandcmd=newOleDbCommand(select*from学生基本情况表,conn);intmycount=(int)cmd.ExecuteScalar();richTextBox1.Text=男生的人数=+mycount.ToString();}说明CommandText属性赋值的字符串是一个SQL语句,统计“学生基本情况表”中男生人数。ExecuteScalar()方法不需要任何参数,它按照CommandText属性所包含的SQL语句执行对指定数据库的操作,返回结果为一个值,而不是一个集合由于事先无法预知返回结果的数据类型,所以返回值为Object类型,引用时需要进行类型转换。11.3.4DataReader对象以顺序(forwardonly)、只读(readonly)的方式从数据库中获得数据结果集访问数据库、执行SQL操作时,DataReader要求与数据库始终保持连接在查询数据量不大,并且不需要随机访问和修改数据的场合具有较高的效率实例11.5例11.5查看student.mdb中“学生基本情况表”的内容及其字段结构,执行结果显示在RichTextBox中实例11.5程序代码OleDbConnectionconn=newOleDbConnection();OleDbCommandcmd=newOleDbCommand();stringstr=@Provider=Microsoft.Jet.OLEDB.4.0;DataSource=student.mdb;privatevoidForm1_Load(objectsender,EventArg
本文标题:c#-数据库应用知识PPT讲解学习
链接地址:https://www.777doc.com/doc-4710535 .html