ASPNET程序设计教程第9章-数据库编程课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ASPNET程序设计教程第9章-数据库编程课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASPNET 程序设计 教程 数据库 编程 课件
- 资源描述:
-
1、第第9章章 数据库编程数据库编程9.1 连接数据库连接数据库9.2 执行执行SQL命令命令9.3 数据数据查询查询9.4 数据更新数据更新9.5 数据源控件数据源控件9.6 数据绑定控件数据绑定控件9.1 连接数据库连接数据库SqlConnection类对象定义的语法格式为:Dim 对象名 As New SqlConnection(ConnectionString)参数ConnectionString是连接串,用于指定数据连接方式。该参数也可以省略不写,而在创建了Connection对象之后再指定其ConnectionString属性。创建Connection对象后,便可使用Connectio
2、n对象的属性和方法。Connection对象的常用属性和方法分别列于表9.1和表9.2中。属属 性性说说 明明ConnectionString取得或设置连接字符串。ConnectionTimeout获取Connection对象的超时时间,单位为秒,为0表示不限制。即若在这个时间之内无法连接数据源,则返回失败。Database获取当前数据库或连接打开后要使用的数据库的名称,默认为Nothing。DataSource获取数据源的完整路径及文件名,若是SQL Server数据库则获取所连接的SQL Server服务器名称。PacketSize获取与SQL Server通信的网络数据包的大小,单位为字
3、节。默认为8192。此属性只有SQL Server数据库才可使用。Server Version获取数据库驱动程序的版本。State获取数据库的连接状态,返回1表示联机,0表示关闭。WorkstationId获取数据库客户端标识。默认为客户端计算机名。此属性只适用于SQL Server数据库。9.1 连接数据库连接数据库方方 法法说说 明明Open()打开与数据库的连接。注意ConnectionString属性只对连接属性进行了设置,并不打开与数据库的连接,必须使用Open()方法打开连接。Close()关闭数据库连接。ChangeDatabase()在打开连接的状态下,更改当前数据库。Crea
4、teCommand()创建并返回与Connection对象有关的Command对象。Dispose()调用Close()方法关闭与数据库的连接,并释放所占用的系统资源。9.2 执行执行SQL命令命令v9.2.1 Command对象对象创建Command对象的语法格式为:Dim 对象名 As New SqlCommand(cmdText,connection)SQL Server数据库Command对象的主要属性和方法分别列于表9.3和表9.4中。属属 性性说说 明明CommandText取得或设置要对数据源执行的SQL命令、存储过程或数据表名。CommandTimeout获取或设置Comman
5、d对象的超时时间超时时间,单位为秒,为0表示不限制。默认为30秒,即若在这个时间之内Command对象无法执行SQL命令,则返回失败。CommandType获取或设置命令类别,可取的值:StoredProcedure,TableDirect,Text,代表的含义分别为:存储过程、数据表名和SQL语句,默认为Text。数字、属性的值为CommandType.StoredProcedure、CommandType.Text等。Connection获取或设置Command对象所使用的数据连接属性。ParametersSQL命令参数集合。9.2.1 Command对象对象方方 法法说说 明明Cance
6、l()取消Comand对象的执行。CreateParameter创建Parameter对象。ExecuteNonQuery()执行CommandText属性指定的内容,返回数据表被影响行数。只有Update、Insert和Delete命令会影响的行数。该方法用于执行对数据库的更新操作。ExecuteReader()执行CommandText属性指定的内容,返回DataReader对象。ExecuteScalar()执行CommandText属性指定的内容,返回结果表第一行第一列的值。该方法只能执行Select命令。ExecuteXmlReader()执行CommandText属性指定的内容,返
7、回XmlReader对象。只有SQL Server才能用此方法。9.2.1 Command对象对象Command对象的CommandType属性用于设置命令的类别:可以是存储过程、表名或SQL语句。当将该属性值设为CommandType.TableDirect时,要求CommandText的值必须是表名而不能是SQL语句。例如:Dim cmd As New SqlCommand()cmd.CommandText=XScmd.CommandType=Command.TableDirectcmd.Connection=conn这段代码执行以后,将返回XS表中的所有记录。它等价于以下代码:Dim c
8、md As New SqlCommand()cmd.CommandText=Select*from XScmd.CommandType=Command.Textcmd.Connection=conn9.2.2 DataAdapter对象对象定义DataAdapter对象的语法格式有4种:(1)Dim 对象名 As New SqlDataAdapter()(2)Dim 对象名 As New SqlDataAdapter(SqlCommand对象)(3)Dim 对象名 As New SqlDataAdapter(SQL命令串,SqlConnection对象)(4)Dim 对象名 As New Sq
9、lDataAdapter(SQL命令串,连接字符串)例如,以下代码使用格式(1)创建DataAdapter对象:Dim conn As New SqlConnection()Dim cmd As New SqlCommand()Dim Adpt As New SqlDataAdapter()conn.ConnectionString=Data Source=.SQLEXPRESS;Initial Catalog=XSCJ;Integrated Security=True;Pooling=Falseconn.Open()cmd.Connection=conncmd.CommandText=Sel
10、ect*from XSAdpt.SelectCommand=cmd9.2.2 DataAdapter对象对象再如,以下代码使用格式(3)创建DataAdapter对象:Dim conn As New SqlConnection()conn.ConnectionString=Data Source=.SQLEXPRESS;Initial Catalog=XSCJ;Integrated Security=True;Pooling=Falseconn.Open()Dim Adpt As New SqlDataAdapter(Select*from XS,conn)9.2.2 DataAdapter对
11、象对象DataAdapter对象的常用属性和方法分别列于表9.5、表9.6中。属属 性性说说 明明ContinueUpdateOnError获取或设置当执行Update()方法更新数据源发生错误时是否继续。默认为False。DeleteCommand获取或设置删除数据源中的数据行的SQL命令。该值为Comand对象。InsertCommand获取或设置向数据源中插入数据行的SQL命令。该值为Comand对象。SelectCommand获取或设置查询数据源的SQL命令。该值为Comand对象。UpdateCommand获取或设置更新数据源中的数据行的SQL命令。该值为Comand对象。方方 法法
12、说说 明明Fill(dataset,srcTable)将数据集的SelectCommand属性指定的SQL命令执行后所选取的数据行置入参数dataSet指定的DataSet对象。Update(dataset,srcTable)调用InsertCommand或UpdateCommand或DeleteCommand属性指定的SQL命令,将DataSet对象更新到相应的数据源。参数dataSet指定要更新到数据源的DataSet对象,srcTable参数为数据表对应的来源数据表名。该方法的返回值为影响的行数。9.2.2 DataAdapter对象对象表9.7列出了DataAdapter对象的常用事件
13、。事事 件件说说 明明FillError调用DataAdapter的Fill()方法时若发生错误则触发该事件。RowUpdated当调用Update()方法并执行完SQL命令时会触发该事件。RowUpdating当调用Update()方法、在开始执行SQL命令时会触发该事件。9.3数据查询数据查询v9.3.1 通过通过DataReader查询数据查询数据1.DataReader对象的属性和方法对象的属性和方法DataReader对象的属性和方法分别列于表9.8和表9.9中。属属 性性说说 明明FieldCount获取DataReader对象包含的记录行数。IsClosed获取DataReade
14、r对象的状态,为True表示关闭。Item(name,col)获取或设置表字段值,name为字段名;col为列序号,序号从0开始。例如:objReader.Item(0)、objReader.Item(name)。ReacordsAffected获取在执行Insert、Update或Delete命令后受影响的行数。该属性只有在读取完所有行且DataReader对象关闭后才会被指定。9.3.1 通过通过DataReader查询数据查询数据方方 法法说说 明明Close()关闭DataReader对象。GetBoolean()获取序号为Col的列的值,所获取列的数据类型必须为Boolean类型;其
15、他类似的方法还有:GetByte、GetChar、GetDateTime、GetDecimal、GetDouble、GetFloat、GetInt16、GetInt32、GetInt64、GetString等。GetDataTypeName()获取序号为Col的列的来源数据类型名。GetFieldType()获取序号为Col的列数据类型。GetName()获取序号为Col的列的字段名。GetOrdinal(Name)获取字段名为Name的列的序号。GetValue()获取序号为Col的列的值。GetValues(values)获取所有字段的值,并讲字段值存放在values数组中。IsDBNul
16、l()若序号为Col的列为空值,则返回True,否则返回False。Read()读取下一条记录,返回布尔值,返回True表示有下一条记录;返回False表示没有下一条记录。9.3.1 通过通过DataReader查询数据查询数据(1)基本数据查询基本数据查询使用DataReader对象读取数据的步骤如下:使用Connection对象创建数据连接。使用Command对象的ExecuteReader()方法执行SQL查询语句或存储过程,创建DataReader对象。成功创建DataReader对象后,使用其属性和方法访问数据。9.3.1 通过通过DataReader查询数据查询数据【例例9.1】使
17、用DataReader对象访问第8章创建的XSCJ.mdb数据库中的KC数据表,将所有记录以表格的形式显示出来,如图9.1所示。9.3.1 通过通过DataReader查询数据查询数据设计步骤如下:(1)新建一个网站WebSite9,再添加一个Web窗体页,命名为“Ex9-1.aspx”。(2)切换到Ex9-1.aspx文件的“源”视图,在DIV标签中添加如下代码:课程信息表(3)切换到“设计”视图,从工具箱的数据栏中拖放一个GridView控件到此页面,双击页面空白处,在Ex9-1.aspx.vb中添加命名空间和Page的Load事件处理代码。命名空间如下:Imports System.Da
18、ta.SqlClientImports System.Data9.3.1 通过通过DataReader查询数据查询数据Page的Load事件处理代码如下:Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)Handles Me.Load If Not IsPostBack Then Dim conn As New SqlConnection()Dim cmd As New SqlCommand()Dim objReader As SqlDataReader Dim i As Integer con
19、n.ConnectionString=Data Source=.SQLEXPRESS;Initial Catalog=XSCJ;Integrated Security=SSPI;Pooling=False 设置Connection对象的连接串 conn.Open()打开数据连接 cmd.Connection=conn 设置cmd对象的连接属性 cmd.CommandText=Select*From KC 设置cmd对象的SQL命令 objReader=cmd.ExecuteReader()执行SQL查询,返回DataReader对象 GridView1.DataSource=objReader
20、 定义DataGrid1对象的数据源 GridView1.DataBind()绑定DataGrid1对象的数据源 conn.Close()关闭数据连接 End If End Sub9.3.1 通过通过DataReader查询数据查询数据(2)带参数的数据查询带参数的数据查询例9.2所给出的是不带参数的基本SQL查询,在很多应用中,查询的条件往往是在执行中产生的,此时就要使用带参数的查询。Parameters参数集合(即ParametersCollection)包含的主要属性和方法分别列于表9.10和表9.11中。属属 性性说说 明明CountParameters参数集合中包含的参数个数。Ite
21、m(index,parameterName)获取下标为index或参数名为parameterName的参数值。例如Parameters.Item(0),可简记为Parameters(0)。9.3.1 通过通过DataReader查询数据查询数据方方 法法说说 明明Add(parameterName,dbType,size,sourceColumn)向参数集合中添加名为parameterName的参数,该参数的数据类型由参数dbType指定,数据长度为size,参数值引用自数据表的sourceColumn字段。常用的数据类型标识符有SqlTypeChar、SqlVarChar、SqlIntege
22、r和SqlDbType.VarChar、SqlDbType.Int等。参数dbType、size和sourceColumn都可省略。例如:cmd.SelectCommand.Parameters.Add(xh,SqlType.VarChar,10),将添加名为xh的参数。Clear()清除Parameters集合中的所有参数。IndexOf(parameterName)获取由parameterName指定的参数的下标。Remove(parameterName)删除指定的参数。9.3.1 通过通过DataReader查询数据查询数据Parameters参数集合中的每个参数都是参数对象。其属性列于
23、表9.12中。属性属性说说 明明DbType获取或设置参数的数据类型,参数数据类型为DbType类型,例如Boolean、DateTime等,默认为Object。表9.13是DbType和SqlDbType两类数据类型标识符间的对应关系表。Direction获取或设置参数的传递方向,可以为Input(输入)、InputOutput(输入输出)、Output(输出)和ReturnValue(传值),默认为Input。Value参数的值。9.3.1 通过通过DataReader查询数据查询数据表9.13列出了DbType和SqlDbType两类数据类型标识符间的对应关系。DbTypeSqlDbTy
24、peDbTypeSqlDbTypeBooleanBitInt32IntByteTinyIntInt64BigIntBinaryVarBinaryObjectVariantAnsiString-StringNVarCharDateTimeDateTimeAnsiStringVarCharDecimalDecimalCurrencyMoneyDoubleFloatDateDateTimeSingleRealTimeDateTimeInt16SmallIntXmlXml9.3.1 通过通过DataReader查询数据查询数据【例例9.2】使用带参数的SQL命令,查询XS数据表中姓“王”的学生信息并显
25、示,如图9.2所示。9.3.1 通过通过DataReader查询数据查询数据设计步骤如下:(1)在网站WebSite9中添加一个Web窗体页,命名为“Ex9-2.aspx”。(2)切换到Ex9-2.aspx文件的“源”视图,在DIV标签中添加如下代码:“王”性学生信息表(3)切换到“设计”视图,从工具箱的数据栏中拖放一个GridView控件到此页面,双击页面空白处,在Ex9-2.aspx.vb中添加命名空间和Page的Load事件处理代码。命名空间如下:Imports System.Data.SqlClientImports System.DataPage的Load事件处理代码所示。9.3.1
展开阅读全文