读书人

ExecuteNonQuery、ExecuteScalar、Dat

发布时间: 2012-08-28 12:37:01 作者: rapoo

ExecuteNonQuery、ExecuteScalar、Dataset、ExecuteReader的不同意义和用法

1. ExecuteNonQuery 方法执行
一个非查询语句( Update 、 Insert、 Delete等)

返回值是执行的影响行数,返回类型为int

例如:

using (SqlCommand cmd = conn.CreateCommand())

{
cmd.CommandText = "Insert into

T_Users(UserName,Password) values('admin','888888')";
cmd.ExecuteNonQuery();
}

2.ExecuteScalar用于执行查询,并返回查询所返回的结果集中第一行的第一列,返回类型为object

例如:

(1).

cmd.CommandText = "select count(*) from T_Users";int i =
Convert.ToInt32(cmd.ExecuteScalar())

(2).

得到自动增长字段的主键值,在 values关键词前加上 output
inserted.Id ,其中 Id 为主键字段名。执行结果就试插入的主键值,用
ExecuteScalar 执行最方便。

?cmd.CommandText = "Insert into T_Users(UserName,Password)

output inserted.Id values('admin','888888')";
? int i = Convert.ToInt32(cmd.ExecuteScalar());

3.ExecuteReader执行有多行结果集的

SqlDataReader reader = cmd.ExecuteReader();...
while (reader.Read())
{ Console.WriteLine(reader.GetString(1))
}

4.DataSet

SqlDataAdapter是DataSet和数据库之间沟通的桥梁,数据集DataSet包含若干表DataTable。

DataSet dataset = new DataSet(); SqlDataAdapter adapter = new
SqlDataAdapter(cmd); adapter.Fill(dataset);
SqlDataAdapter 是 DataSet 和数据库之间沟通的桥梁。数据集DataSet 包
含若干表 DataTable ,DataTable 包含若干行DataRow 。foreach
(DataRow row in dataset.Tables[0].Rows) row["Name"] 。



读书人网 >编程

热点推荐