《专题三-数据库》由会员分享,可在线阅读,更多相关《专题三-数据库(107页珍藏版)》请在金锄头文库上搜索。
1、专题三 数据库访问技术,教学目标: (1)理解如何建立一个数据库 (2) SQL访问数据库技术 (3)Linq访问数据库技术,如何建立一个数据库,教学目标: (1)设计数据库 (2)撰写需求分析报告,数据库设计的基本步骤,需求分析,需求分析报告,在调查分析的基础上,编写需求规格说明书,它的内容主要包括: 系统的概况、目标、范围、背景、历史和现状; 系统总体结构与子系统结构说明; 系统功能说明; 系统的软硬件支持环境的选择及规格要求; 组织结构图、组织之间联系图等; 数据流程图、功能模块图和数据字典等。,使用ADO.NET访问数据库,主要内容,ADO.NET与数据库概述 ADO.NET类和对象概
2、述 ADO.NET基本数据库编程,数据库访问接口,C#中接口就是ADO.NET和后台的数据库(包括SQL Server,Oracle,Access,Excel电子表格,甚至文本文件等)的连接部分。 微软设计的ADO.NET并不是针对某个特定的数据库的,而是希望能够从所有的主流数据库中提取数据,而且ADO.NET也成功做到了这一点。这里的接口就是ADO.NET和数据库如何连接的方法。 基于ADO.NET开发的数据库系统,其结构如下图所示。,数据库访问接口,OLEDB,ODBC接口出现之后,在很长的时间内一直是程序员开发数据库系统的首选接口技术,因为它比较简单。但ODBC接口有两个主要的缺陷。 O
3、DBC接口只能连接关系型数据,比如,关系型数据库、Excel、规定格式的文本等。但不能用于非关系型的数据,如电子邮件数据等。 ODBC由于需要支持很多类型的数据库,普遍适用,但对每种数据库的支持都不是特别理想。,OLEDB,OLEDB(Object Linking and Embedding,即对象链接和嵌入技术)是新一代数据接口标准,其设计要求是能够以统一的方式访问所有的数据类型。换句话说,开发的数据库项目的后台数据库几乎可以是所有的数据类型。目前OLEDB也逐步成为了利用ADO.NET开发数据库项目的接口标准。微软已经开发了许多标准的OLEDB驱动程序。 OLE DB接口中没有集中管理OL
4、E DB驱动程序,而是开发了各种数据库的OLE DB驱动程序,程序员可以按照数据库类型的不同选择驱动程序。,OLEDB和ODBC的比较,OLEDB接口追求的是“专用”,每种类型的数据库有自己专用的OLEDB接口驱动程序。 ODBC接口追求的是“通用”,首先都要使用ODBC数据源管理器,然后调用自己的驱动程序。 提示:正是由于OLEDB接口的驱动程序是针对特定类型的数据库设计的,所以尽管通用性差一些,但效率更高。,操作数据库相关对象的功能,使用 Command 对象查询数据库的步骤,创建查询用 sql 语句,创建 Connection 对象,创建 Command 对象,返回 DataReader
5、 对象,使用 DataReader 的 Read() 方法逐行读取结果,使用列名或列的索引从 DataReader 中获取某列的值,返回单个值,执行 ExecuteReader() 方法,执行 ExecuteScalar() 方法,使用 Command 对象更改数据库的步骤,创建 sql 语句 Insert、Update、Delete,创建 Connection 对象,创建 Command 对象,返回受影响的行数,执行 ExecuteNonQuery() 方法,使用System.Data命名空间,进行ADO.NET程序开发的第一步就是引用System.Data命名空间,其中含有所有的ADO.N
6、ET类,将using指令插入在程序的顶端: using System.Data; 1. SQL Server .NET数据提供者 using System.Data.SqlClient; 2. OLE DB .NET数据提供者 using System.Data.OleDb; 3. Oracle数据提供者 using System.Data.OracleClient; 4. ODBC .NET数据提供者 using System.Data.Odbc;,连接并使用数据库一般步骤,1.创建数据库,如Access,SQL Server 2000等 2.使用Connection对象连接数据库 3.使用
7、Command对象对数据源执行SQL命令并返回数据 4.使用DataReader和DataSet对象读取和处理数据源的数据 5.断开数据库连接,例1,using System; using System.Data.SqlClient; namespace MyFirstExample class MyFirstExample static void Main(string args) /连接SQL Server2000数据库的字符串 String connectionString = “server=localhosthmx;database=Northwind;uid=sa;pwd=“;,/
8、创建SqlConnection对象,并连接到SQL Server2000自带的 Northwind 数据库 SqlConnection mySqlConnection = new SqlConnection(connectionString); /创建SqlCommand对象 SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); string commandString = “Select CustomerID,CompanyName,ContactName,Address “ + “From Customers Where Cu
9、stomerID = ALFKI“;,mySqlCommand.CommandText = commandString; /用Connection对象的Open()方法打开数据库 mySqlConnection.Open(); /创建SqlDataReader对象,并执行ExecuteReader()方法 SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); / 读取每行记录 mySqlDataReader.Read(); / 显示列属性值 Console.WriteLine(“mySqlDataReader“Custome
10、rID“=“ + mySqlDataReader“CustomerID“);,Console.WriteLine(“mySqlDataReader“CompanyName“=“ + mySqlDataReader“CompanyName“); Console.WriteLine(“mySqlDataReader“ContactName“=“ + mySqlDataReader“ContactName“); Console.WriteLine(“mySqlDataReader“Address“=“ + mySqlDataReader“Address“); Console.Write(“恭喜,显示
11、数据任务完成!“); Console.ReadLine(); /关闭SqlDataReader对象 mySqlDataReader.Close(); /关闭数据库连接 mySqlConnection.Close(); ,/循环读出所有的班级名,并添加到班级列表框中 while (dataReader1.Read() className = (string)dataReader1“名称“; comboBox2.Items.Add(className); dataReader1.Close(); 如何实现批量查看和修改信息功能?,数据集Dataset,3 ADO.NET基本数据库编程,常用的数据库
12、编程包括连接数据库、插入新的数据、删除数据和修改数据,即执行SQL语法中的Insert、Delete、 Update语句。,连接数据库,进行ADO.NET的开发首先需要进行数据库的连接。本例子中的数据库是SQL Server2000中自带的Northwind数据库。下面的代码是一个连接字符串样本,用来访问Northwind数据库。,连接数据库,static private string GetConnectionString() /适用于SQL Server数据库 return “server=localhost;database=Northwind;uid=sa;pwd=sa“; /适应于A
13、ccess等数据库 return “Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:MyFile.mdb“; 其中C: MyFile.mdb为存放Access数据库文件的位置。,插入新的数据记录,使用Command对象的ExecuteNonQuery()方法来实现插入数据操作,用SQL的Insert语句来设定具体的要插入的新记录内容。 下面的程序实现在Northwind数据库中的Student表中插入一条新的记录。 程序代码如下: using System; using System.Data; using System.Data.SqlClien
14、t; namespace ADONETWriteQuery ,插入新的数据记录,class ADONETWriteQuery static void Main(string args) /连接SQL Server2000数据库的字符串 String connectionString = “server=localhosthmx;database=mydata;uid=sa;pwd=“; /创建SqlConnection对象,并连接到SQL Server2000的 mydata 数据库 SqlConnection mySqlConnection = new SqlConnection(conne
15、ctionString);,插入新的数据记录,/创建SqlCommand对象 SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); /创建SQL的Insert语句,在Student表中输入一条新的记录 string InsertString = “INSERT INTO Student(StudentNo,StudentName,Sex) VALUES(060203,王二,男)“; mySqlCommand.CommandText = InsertString; /用Connection对象的Open()方法打开数据库 mySql
16、Connection.Open();,插入新的数据记录,/用SqlCommand对象,插入一条新的记录 mySqlCommand.ExecuteNonQuery(); Console.Write(“恭喜,输入新数据任务完成!“); /关闭数据库连接 mySqlConnection.Close(); Console.ReadLine(); ,删除数据记录,使用Command对象的ExecuteNonQuery()方法来实现删除数据操作,用SQL的Delete语句来设定具体的要删除的记录。 下面的程序实现了在Northwind数据库中的Student表中删除指定的记录。 程序清单如下: using System; using System.Collections.Generic; using System.Text; using System.Da