第10章:数据库访问基础讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章:数据库访问基础
伍星 wuxing@cqu.edu.cn 重庆大学计算机学院
提纲
1 10.1关系数据库 2 10.2ADO.Net 3 10.3 数据绑定
www.themegallery.com
10.1关系数据库
数据库提供把相关信息集合在一起的方法 数据库:按照一定规则组织起来的数据集合; 数据库管理系统:对数据进行组织和管理的软件; 数据库应用程序:从数据库管理系统中获取、显示、更新数据;
10.2ADO.Net
DataReader 对象
应用程序
DataSet对象
DataRealtion 对象
DataTables对象
数据库1
Command对象 Connection对象
数据库2
数据库3
10.2.1 ADO.Net基础
1.SqlConnection类 用于建立一个到SQLServerExpress的连接
获取要连接的数据源实例名称(服务器名或文件名)
获取在连接字符串“Provider=”子句中指定的OLEDB提 供程序的名称 用来表示同当前数据库连接状态的一个枚举类型 (ConnectionState)值,只读
关闭到数据源的连接
Open()方法
按ConnectionString的设置打开数据库连接
10.2.1 ADO.Net基础
ExecuteNonQuery() 用来执行Insert、Update、Delete等SQL语句,不返回结果集,
方法
仅返回操作所影响的行数。如果Update和Delete命令所对应的
目标记录不存在,返回0。如果出错,返回–1
ExecuteScalar()方法
通常用来执行包含Count、Sum等聚合函数的SQL语句,并返回结果集中 的首行首列。如果结果集大于一行一列,则忽略其他部分
1.Select语句 用于对数据库表中数据进行查询操作,其常用的语法格式如下:
Select 字段表 From 表名 [Where 查询条件] 1)字段表:查询结果中包含的字段列表,字段之间用逗号分开。
如果使用星号“*”,则表示选择表的全部字段。 2)From子句:指定被查询的一个或多个表。 3)Where子句:构造查询条件,以确定在表中哪些记录会被选中。
10.1.2 SQL语句基础
4.Insert 语句 用于在指定的数据表中插入一条记录(行)
INSERT INTO 表名称 VALUES (值1, 值2,....) INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
第二种方法将值依次插入到指定的列中;
判断DataReader对象是否关闭,返回值为bool类型
Close()方法
关闭DataReader对象,无返回值
GetValue()方法 GetValues ()方法
根据列索引值,获取当前记录行内指定列的值,返回值为Object 类型 获取当前记录行内的所有数据,返回值为一个Object类型数组
GetDataTypeName() 方 根据列索引值,获得数据集指定列(字段)的数据类型
SqlDataReader Reader=com.ExecuteReader();
10.2.2 DataReader读取数据
属性和方法
说明
FieldCount
由DataReader得到的一行数据中的列(字段)数
HasRows
判断DataReader是否包含数据,返回值为bool类型
IsClosed
Name
ID
College Major
Age
张良 20121401 计算机 信息安全 19
王宇 20121402 计算机 网络工程 20
刘燕 20121301 外语 欧美文学 19
10.1.2 SQL语句基础
SQL语言是关系数据库中通用的结构化查询语言; 本小节介绍几个最常用的数据操作SQL语句的基本使用方法:
}
}
catch(Exception ex)
{
label1.Text += ex.Message.ToString();
//未能连接数据库时的错误信息
}
finally
{
conn.Close();//关闭连接
}
10.2.1 ADO.Net基础
2.SqlCommand类 用于生成并执行SQL语句,对SQLServer数据库进行查询、插入、删除和更新等操作
Update StudentInfo Set Major='计算机科学与技术' where College='计算机'
3.Delete 语句 Delete语句用于删除表中的一行或多行:
Delete From 表名 [where 查询条件]
例10-5 构造用于删除表10-1中外语学院学生信息的SQL语句。 Delete From StudentInfo where College='外语’
string str = @"Data Source=localhost\SQLEXPRESS;Initial
Catalog=SchoolInfo;Integrated Security=True;
Pooling=False";
//SchoolInfo为数据库的名字
SqlConnection conn = new SqlConnection(); //创建连接数据库的对象
SqlCommand sqlCmd = new SqlCommand(); //创建SqlCommand对象
10.2.1 ADO.Net基础
i/n/t返cctr回ooy un统nn计t.C=结on果(ninetc)tsiqolnCSmtrdin.Egx=ecsuttre;S/c/a设l置ar连(接);信息 labe{l1.Text += count.ToString();
例10-6在表10-1中插入一条学生的信息: insert into studentinfo values('wowkie','20120001','计算机,'信息安全',22)
10.1.3 SQLExpress中设置数据库
具体过程见操作显示: 1)创建数据库 2)创建数据库表; 3) 录入数据到数据表中;
conn.Open();//打开连接数据库
if (conn.State == ConnectionState.Open) {
MessageBox.Show("数据库连接已成功建立", "数据库连接提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
属性或方法
说明
ConnectionString 获取或设置用于打开数据库的字符串
ConnectionTimeout
获取在尝试建立连接时终止尝试,并生成错误之前所等待 的时间
DataBase
获取当前数据库,或连接打开后要使用的数据库的名称
DataSource Provider State Close()方法
}
10.2.2 DataReader读取数据
DataReader对象从数据库文件头向尾的方式从数据库中获得数据集。 查询结果保存到客户端缓冲区中,供DataReader的Read方法读取。 DataReader要求进行数据库访问时一直与被操作的数据库保持连接
DataReader类的对象是使用SqlCommand对象的ExccuteReader 方法创建. 假定已经正确地创建并实例化了SqlCommand对象com 使用下面方式创建SqlDataReader对象 Reader:
SqlConnection conn = new SqlConnection(str); //创建连接数据库的对象
try
{
conn.Open(); //打开连接数据库
if(conn.State == ConnectionState.Open)
{
label1.Text += "数据库连接已成功建立";
属性或方法
说明
CommandText
CommandTimeout
获取或设置要对数据源执行的SQL语句或存储过程
获取或设置在终止对执行命令的尝试并生成错误之前的等待时间
CommandType OleDbCommand()方法
获取或设置CommandText属性中的语句是SQL语句、数据表名还是存储 过程 Text或不设置,说明CommandText的值是一个SQL语句 TableDirect,说明CommandText的值是一个要操作的数据表名 StoredProcedure,说明CommandText的值是一个存储过程 用来构造OleDbCommand对象的构造函数,有多种重载形式
例10-6 使用SqlConnection对象建立与SQLServer数据库的连接。如果连接成 功,则在标签中显示“数据库连接已经成功建立”,否则报告错误信息。
string str = @"Data Source=WOWKIEPAD\SQLEXPRESS;
Initial Catalog=SchoolInfos;Integrated Security=True;Pooling=False";
10.1.2 SQL语句基础
例10-1 构造从表10-1中查询所有学生的信息的SQL语句。
Select * From StudentInfo
例10-2 构造从表10-1中查询所有计算机学院学生信息的SQL语句。
Select * From StudentInfo Where College='计算机'
Visual Studio提供了ADO .Net来创建数据库应用程序 本章使用ADO.NET中的类进行基本的数据访问(获取、显示和更新)
10.1关系数据库
目前应用最广泛的是关系型数据库模型 典型关系数据库: SQLServer、Oracle、DB2、Informix、MySQL… SQLServer是Microsoft推出的关系数据库,Visual Studio 2010系统中集成了一个SQLServer 2008的Express 版本。 Visual Studio2010开发环境中可以对SQLServer 2008 (Express版)进行直接的操作。 本章数据库访问均使用SQLServer 2008作为后台数据库。

GetString()方法
根据列索引值,获得数据集string类型指定列(字段)的值
GetChar()方法
根据列索引值,获得数据集char类型指定列(字段)的值
GetInt32()方法
根据列索引值,获得数据集int类型指定列Baidu Nhomakorabea字段)的值
GetName()方法 NextResult()方法
根据列索引值,获得数据集指定列(字段)的名称,返回值为 string类型 将记录指针指向下一个结果集。调用该方法获得下一个结果集后, 依然要用Read()方法来开始访问该结果集
ExecuteReader() 获 得 执 行 SQL 查 询 语 句 后 的 结 果 集 , 返 回 值 为 一 个
方法
DataReader对象
10.2.1 ADO.Net基础
例10-7 使用SqlCommand对象的ExecuteScalar方法统计指定学院的学生 人数,执行结果显示在标签中显示。
2.Update 语句 用于更新表中的一行或多行,语法格式如下: Update 表名 Set 列名 = 新值 [where查询条件]
1)列名:指定需要被更新的字段 2)新值:用于替换原值的数据值 3)[where查询条件]:用于构造查询条件,确定哪些记录会被选中新。
10.1.2 SQL语句基础
例10-4 更新表10-1中计算机学院学生“专业”字段为“计算机科学与技术”
10.1关系数据库
关系数据库中包含如下基本概念:
1)表:一组相关数据按照行排列而成有机整体(与一张表格一样); 2)字段:表中每一列称为一个字段,每个字段都有相应的描述信息; 3)记录:表中一行称之为一条记录,记录由同一行上的所有字段值组成; 4)主键:表中可以用来惟一区别每一条记录的字段或字段组合,表中的 的每个记录在这个主键上都必须有互不相同相同的取值;
}
sqlCmd.Connection = conn; sqlCmd.CommandText = "Select count(*) from StudentInfo";
} catch (Exception ex) {
MessageBox.Show(ex.Message.ToString(), "数据库连接提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
相关文档
最新文档