1.String 和 StringBuilder
StringBuilder 比 String类节省系统空间,虽然StringBuilder类不像String类具有很多字符的处理方法,但是在替换,添加或删除字符串时,StringBuilder类对象的执行速度要比String类对象快的多
[语法]
//声明一个空的StringBuilder对象
StringBuilder对象名称 = new StringBuilder();
//声明一个StringBuilder对象,值为"字符串初始值"
StringBuilder 对象名称 = new StringBuilder("字符串初始值");
使用StringBuilder类时首先要引用System.Text命名空间
StringBuilder常用的属性和方法
属性:
Capactiy: 获取或设置可包含在当前对象所分配的内存的最大字符个数
Length: 获取或设置当前对象的长度
方法:
Append(): 在结尾追加
AppendLine(): 将默认的行终止符追加到当前对象的末尾
AppendFormat(): 添加特定格式的字符串
Insert(): 在指定位置插入指定字符串
Remover(): 移除指定字符串
注意:
如果要将StringBuilder类对象转换为String类对象,唯一的方式是使用ToString()方法
StringBuilder类并不总能提高性能,它基本上在处理多个字符串时使用.如果只是连接两个字符串,使用System.String类会比较好.
经验:
在程序调试状态下打开"文本可视化工具"对话框的步骤是:
设置断点->启动调试->将查看值放入监视窗口->单击监视窗口中"值"列右侧的放大镜小图标,即可打开"文本可视化工具"对话框
编写SQL语句时,在数据库的表名.列名两端添加一对方括号[],可以区别一些特殊的不合命名规则的字符串,或防止数据库表的列名与系统关键字相冲突.
2.查询数据
2.1DataReader对象
ADO.NET的DataReader对象可以从数据源中检索只读,只进的数据流,每次从数据源中只提取一条记录.使用DataReader可以提高应用程序的运行性能,减少系统开销.DataReader属于.NET数据提供程序,每一种.NET数据提供程序都有与之对应的DataReader类
.NET 数据提供程序及DataReader类 .NET 数据提供程序 连接类 SQL 数据提供程序
System.Data.SqlClient命名空间中SqlDataReader OLE DB 数据提供程序
System.Data.OleDb命名空间中OleDbDataReader ODBC 数据提供程序
System.Data.Odbc命名空间中OdbcDataReader Oracle 数据提供程序
System.Data.OracleClient命名空间中OracleDataReader
使用DataReader对象读取数据的时候,不能对他进行修改,所以它只是只读的.另外,应用程序要始终保持与数据库的连接.
DataReader对象的主要属性和方法
属性:
HasRows : 表示查询是否返回结果.如果有查询结果返回true,否则返回false
FieldCount: 当前行中的列数
方法:
Read(): 前进到一下行记录.如果读到记录放回true,否则返回false
Colse(): 关闭DataReader对象
2.2DataReader对象用法
创建一个DataReader对象需要调用Command对象的ExecuteReader()方法,ExectueReader()方法的返回值是一个DataReader对象.可以调用DataReader对象的Read()方法读取一行记录.
创建和使用DataReader的步骤如下:
(1)创建Command对象
(2)调用Command对象的ExexuteReader()方法返回一个DataReader对象
(3)调用DataReader的Read()方法逐行读取查询结果集的记录
(4)读取当前行的某列数据
(5)关闭DataReader对象,调用它的Close()方法.
3.更新数据
3.1Command对象的ExecuteNonQuery()方法
Command对象的ExecuteNonQuery()方法用于执行指定的SQL语句,如UPDATE,INSERT,DELETE,它返回的是受SQL语句影响的记录行数.
使用Command对象的ExecuteNonQuery()方法的步骤
(1)创建Connection对象 conn
(2)编写要执行的SQL语句
(3)创建Command对象
(4)执行ExecuteNonQuery()方法,注意:完成操作后不要忘记关闭conn对象
(5)根据ExecuteNonQuery()方法的返回值进行后续的处理.如果返回值小于或等于0说明没有记录受影响
4.ADO.NET总结
1.查询单个值
需要使用Command对象的ExecuteScalar()方法.步骤如下
(1)创建Connection对象
(2)拼写SQL查询语句
(3)使用SQL语句和Connection对象创建Command对象
(4)打开数据库连接,调用Connection的Open()方法
(5)调用Command对象的ExecuteScalar()方法,返回一个标量值.
(6)操作完成后关闭数据库连接,调用Connection对象的Close()方法
2.查询若干条记录
需要使用Command对象的ExecuteReader()方法,步骤如下
(1)创建Connection对象
(2)拼写SQL查询语句
(3)使用SQL语句和Connection对象创建Command对象
(4)打开数据库连接,调用Connnection对象的Open()方法
(5)调用Command对象的ExecuteReader()方法,返回一个DateReader对象
(6)在循环中调用DateReader对象的Read()方法,逐行读取记录.如果读到记录则返回true,否则返回false
(7)使用(type)dataReader[列名或索引]的方式读取这一行中的某一列的值
(8)调用DataReader对象的Close()方法,关闭DataReader对象
(9)操作完成后关闭数据库连接,调用Connection对象的Close()方法
3.数据更新操作
对数据库执行数据更新操作时(包括添加,修改,删除数据)都使用Command对象的ExecuteNonQuery()方法,步骤如下
(1)创建Connection对象
(2)拼写SQL增删语句
(3)使用SQL语句和Connection对象创建Command对象.
(4)打开数据库连接,调用Connection对象的Open()方法
(5)调用Command对象的ExecuteNonQuery()方法只限定命令,返回数据库中受影响的函数
(6)操作完成后关闭数据库连接,调用Connection对象的Close()方法.
Command对象的三种方法的对比如下所示
ExecuteScalar()方法:执行查询操作,并返回结果集中的第一行和第一列
ExecuteReader()方法:执行查询操作,返回DataReader对象
ExecuteNonQuery方法:执行添加,修改,删除操作,返回受影响的行数