版权所有,转载请注明原作者,仿冒侵权必究法律责任
※开始本章的学习之前,你需要回顾和掌握的知识点:
1.ADO.NET两大核心组件是什么?
.NET Framework数据提供程序和DataSet数据集
2..NET Framework数据提供程序中的四大核心对象有哪些?
在SQL Server数据提供程序中哪个命名空间中?四大核心对象在SQL Server数据提供程序中的类名分别是什么?
Connection建立和数据库的连接
Command执行命令
DataReader读取只读只进的数据流
DataAdapter数据适配器,建立数据库和数据集之间的关系。
位于System.Data.SqlClient命名空间中
SqlConnection/SqlCommand/SqlDataReader/SqlDataAdapter
3.Connection对象和Command对象的作用是什么?属性和方法有哪些?
Connection对象的作用是建立应用程序和数据库的连接,方便访问和操作数据库中的数据
Connection对象的属性:
ConnectionString连接字符串
方法:
void Open();
void Close();
Command对象的作用是对数据库中的数据执行增删改查命令,对数据库中的数据进行操作
属性:
Connection已经定义好的Connection对象
CommandText 需要执行的T-SQL语句
方法:
Int ExecuteNonQuery()返回受影响的行数
DataReader ExecuteReader()返回DataReader对象
Object ExecuteScalar()返回查询的单个值
4.异常和编译错误的区别是什么?
在编译时发生的错误就是编译错误,在运行时发生的错误就是异常。一般来说,语法如果出现错误就会触发编译错误,如果语法没有错误,但是可能由于没有显式地执行或取消某些操作而造成程序运行时发生的错误就是异常。
5.异常处理的关键字有哪些?执行流程是怎样的?
try-catch-finally
首先执行try块中的语句,如果没有发现异常,则执行完try块中的语句后再执行finally块中的语句。如果在执行try块语句的过程中发现了异常,则将会终止try块语句的执行,直接跳进catch块中(捕获到了异常)执行catch块中的语句,然后再执行finally块中的语句。总的来说,在进行异常处理时,finally块中的语句不论程序是否发生异常在最后都要执行,程序在执行完try块或catch块中的语句后总会将控制权传递给finally块,与try块的退出方式无关。
6.SQL Server数据提供程序中和数据库建立连接的连接字符串是什么?
“Data Source=服务器名;Initial Catalog=数据库名;User ID=用户名;Pwd=密码(如果密码为空,则此项可以不设置)”
7.Connection对象和Command对象创建时需要传递的参数是什么?这些参数的意义分别是什么?
Connection对象在创建时需要将已经定义好的连接字符串作为实参传入,Command对象在创建时需要将需要执行的SQL语句字符串和已经定义好的Connection对象作为实参传入。顺序不能颠倒。
※学习完本章后,你需要理解和掌握的知识点:
1.String类和StringBuilder类分别位于哪个命名空间中?二者有什么区别?StringBuilder类的常用属性和方法有哪些?
2.DataReader对象的作用是什么?有哪些属性和方法?Read()方法的作用是什么?在SQL Server数据提供程序中位于哪个命名空间中?
3.如何对数据库中的数据进行增删改操作?需要用到什么对象以及哪些方法?
4.总结ADO.NET的几个核心对象、以及他们的作用和执行流程是怎样的?
※对照下面的我的一些个人总结看看有没有掌握:
1.String类是不可变字符串,也就是说一经定义,其值不可改变,虽然我们在以前使用String类的一些方法对字符串进行连接或插入等操作时会有不同的输出结果,但是实际上每声明或使用一次String类的字符串,都会重新在内存中分配一块独立的存储空间,降低系统性能。StringBuilder类便完美的解决了这个问题。StringBuilder类是可变字符串,使用StringBuilder类可以重复修改字符串而又不需要重新创建新的对象(分配新的存储空间),并且StringBuilder类提供了对连接字符串的一些实用方法,并且当使用StringBuilder类对字符串进行拼接操作时,其执行效率远远高于String类。String类位于System.String命名空间中,StringBuilder类位于System.Text命名空间中。
StringBuilder类常用属性和方法:
属性:
Capacity 获取当前对象分配的内存中的最大字符数
Length 获取当前对象的长度
方法:
Append(string value)在结尾追加指定字符串
AppendFormat(string format,Object arg0,Object arg1)在结尾追加指定格式的字符串
Insert(int index,string value)在指定位置插入指定字符串
Remove(int startIndex,int length)移除指定字符串
2.
DataReader对象的作用是读取只进且只读的数据流。
属性:
HasRows查到结果返回true,没有查到结果返回false
FieldCount获取当前行中的列数
方法:
bool Read()前进到下一行记录中,读到记录返回true,没有读到记录返回false
void Close()关闭DataReader对象
DataReader对象在SQL Server数据提供程序中位于System.Data.SqlClient命名空间中
3.
对数据库中数据进行增删改操作时,除了需要已经使用Connection对象建立了和数据库的连接外(断开连接机制除外)需要用到Command对象的ExecuteNonQuery()方法执行诸如增删改这些不返回行的语句,并返回受影响的行数。
4.
ADO.NET小结
到目前为止,我们已经学习了ADO.NET的两大核心组件之一:.NET Framework数据提供程序中的四大核心对象中的三个核心对象。现对于本阶段所学习的使用ADO.NET访问和操作数据库中数据做以小结:
四大核心对象:
Connection建立和数据库的连接
Command执行命令
DataReader读取只读只进的数据流
DataAdapter数据适配器,建立数据库和数据集之间的关系,通过Fill()方法将数据库中的数据填充到数据集中,通过Update()方法将数据集中的数据提交到数据库
本阶段重点学习了前面三个核心对象位于SQL Server数据提供程序中的操作流程和注意事项:
执行流程一般如下:
增删改:
int ExecuteNonQuery()
查:
一次查询一个结果:Object ExecuteScalar()
一次查询多个结果:DataReader ExecuteReader()
(8)如果使用了DataReader对象,则应该先调用DataReader对象的Close()方法关闭该DataReader对象,然后调用Connection对象的Close()方法关闭数据库的连接