DBHelper

原文:百度百科

 

c#

数据查询输出

 

2012-07-17 17:07 

1

、使用

ExecuteReader()

操作数据库

 

2

、使用

ExecuteNonQuery()

操作数据库

 

3

、使用

ExecuteScalar()

操作数据库

 

4

、使用

DataSet

数据集插入记录、更新数据。

 

1

、使用

ExecuteReader()

操作数据库

,

执行查询操作的利器

 

ExecuteReader

相比与

DataSet

而言,

DataReader

具有较快的访问能力,

并且能

够使用较少的服务器资源。

DataReader

 

象提供了“游标”形式的读取方法,

当从结果中读取了一行,则“游标”会继续读取到下一行。通过

Read

方法可以

判断数据是否还有下一行,如果存在数据,则

 

继续运行并返回

true

,否则返回

false

 

DataReader

可以提高执行效率

,

基于序号的查询可以使用

DataReader.

当使用

ExecuteReader()

操作数据库时,

会遇到知道某

 

列的名称而不知道某列的号的情

况,

这种情况可以通过使用

DataReader

对象的

GetOrdinal()

方法获取相应的列

号。此方法接收一个列名并返

 

回此列名所在的列号。

 

示例代码:

 

string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; 

//

创建连接字串

 

SqlConnection con = new SqlConnection(str); //

创建连接对象

 

con.Open(); //

打开连接

 

string strsql = "select * from mynews where id=1 order by id desc"; //

创建执行

SQL

语句

 

SqlCommand cmd = new SqlCommand(strsql, con); //

创建

Command

对象

 

SqlDataReader rd = cmd.ExecuteReader(); //

创建

DataReader

对象

 

int id = rd.GetOrdinal("title"); // 

使用

GetOrdinal

方法获取

title

列的

列号

 

while (rd.Read()) //

遍历

DataReader

对象

 

Label1.Text = "

新闻

id

" + rd["id"]; //

输出对象的值

 

使用

ExecuteReader()

操作数据库,通常情况下是使用

ExecuteReader()

进行数

据库查询操作,

使用

 ExecuteReader()

查询数据库能够提升查询效率,

而如果需

要进行数据库事务处理的话,

ExecuteReader()

方法并不是理想的选择。

 

2

、使用

ExecuteNonQuery()

ExecuteScalar()

操作数据库,执行增删改操作的

利器

 

ExecuteNonQuery()

通常情况下为数据库事务处理的首选,当需要执行插入、删

除、更新等操作时,首选

 ExecuteNonQuery()

ExecuteNonQuery()

执行成功是

返回的是一受影响的行数,对于“CREATE 

TABLE”和“DROP 

TABLE”语句,返回

值为

0

,而对于所有其他类型的语句,返回值为

-1

ExecuteNonQuery()

操作数

据时,可以不使用

DataSet

直接

 

更改数据库中的数据。

 

ExecuteScalar()

方法也用来执行

SQL

语句,但是

ExecuteScalar()

执行

SQL

句后的返回值与

 ExecuteNonQuery()

并不相同,

ExecuteScalar()

方法的返回值

的数据类型是

Object

类型。如果执行的

SQL

语句是一个查

 

询语句(

SELECT

),

则返回结果是查询后的第一行的第一列,如果执行的

SQL

语句不是一个查询语

句,则会返回一个未实例化的对象,必须通过类型转换来

 

显示。

 

通常情况下

ExecuteNonQuery()

操作后返回的是一个值,而

ExecuteScalar()

作后则会返回一个对

 

象,

ExecuteScalar()

经常使用于当需要返回单一值时的情

况。

例如当插入一条数据信息时,

常常需要马上知道刚才插入的值,

则可以使用

 

ExecuteScalar()

方法。

 

示例代码:

 

string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; 

//

创建连接字串

 

SqlConnection con = new SqlConnection(str); //

创建连接对象

 

con.Open(); //

打开连接

 

string strsql = "insert into mynews values ('

刚刚插入的

id

是多少

?') 

SELECT @@IDENTITY as 'bh'"; //

插入语句

 

SqlCommand cmd = new SqlCommand(strsql, con); //

执行语句

 

Label1.Text = "

刚刚插入的行的

id

" + cmd.ExecuteScalar(); //

返回赋值

 

上述代码使用了

SELECT @@IDENTITY

语法获取刚刚执行更新后的

id

值,然后通

过使用

ExecuteScalar()

方法来获取刚刚更新后第一行第一列的值。

 

4

、使用

DataSet

数据集插入记录、更新数据。

 

使用

INSERT

语句能够完成数据插入,使用

DataSet

对象也可以完成数据插入。

为了将数据库的数据填充到

DataSet

中,则必须先使用

 DataAdapter

对象的方

法实现填充,当数据填充完成后,开发人员可以将记录添加到

DataSet

对象中,

然后使用

Update

方法将记录插入数据

 

库中。

使用

DataSet

更新记录的步骤如下

所示:

 

创建一个

Connection

对象。

 

创建一个

DataAdapter

对象。

 

初始化适配器。

 

使用数据适配器的

Fill

方法执行

SELECT

命令,并填充

DataSet

 

使用

DataTable

对象提供的

NewRow

方法创建新行。

 

将数据行的字段设置为插入的值。

 

使用

DataRowAdd

类的

Add

方法将数据行添加到数据表中。

 

DataAdapter

类的

InsertCommand

属性设置成需要插入记录的

INSERT

语句。

 

使用数据适配器提供的

Update

方法将新记录插入数据库。

 

使用

DataSet

类提供的

AcceptChanges

方法将数据库与内存中的数据保持一

致。

 

 

 

Insert 

示例代码:

 

string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; 

//

创建连接字串

 

SqlConnection con = new SqlConnection(str); //

创建连接对象

 

con.Open(); //

打开连接

 

string strsql = "select * from mynews"; // 

编写

SQL

语句

 

SqlDataAdapter da = new SqlDataAdapter(strsql, con); //

创建适配器

 

posted @   阿玛  阅读(151)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示