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"]



你可能感兴趣的:(execute)