C#学习笔记(六)-使用ADO .NET查询和操作数据库

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方法:执行添加,修改,删除操作,返回受影响的行数

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值