当创建 SqlCommand 的实例时,读/写属性将被设置为它们的初始值。有关这些值的列表,请参见 SqlCommand 构造函数。
SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法:
项 | 说明 |
---|---|
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,一般情况下执行 INSERT、DELETE、UPDATE 和 SET 语句等命令。每调用一次 BeginExecuteNonQuery,都必须调用一次通常在单独的线程上完成操作的 EndExecuteNonQuery。 | |
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。每调用一次 BeginExecuteReader,都必须调用一次通常在单独的线程上完成操作的 EndExecuteReader。 | |
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。每调用一次 BeginExecuteXmlReader,都必须调用一次 EndExecuteXmlReader,它通常在单独的线程上完成操作,并且返回一个 XmlReader 对象。 | |
执行返回行的命令。为了提高性能,ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此,如果 ExecuteReader 用于执行命令(例如 Transact-SQL SET 语句),则它可能不会产生预期的效果。 | |
执行 Transact-SQL INSERT、DELETE、UPDATE 及 SET 语句等命令。 | |
从数据库中检索单个值(例如一个聚合值)。 | |
将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。 |
您可以重置 CommandText 属性并重复使用 SqlCommand 对象。但是,在执行新的命令或先前命令之前,必须关闭
下面的示例创建一个 SqlConnection、一个 SqlCommand 和一个 SqlDataReader。该示例读取所有数据,并将其写到控制台。最后,该示例先关闭 SqlDataReader,然后关闭 SqlConnection。
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(
queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
command需要链接和sql命令才能操作sqlcommand其中可以存在参数,所以有Parameters 集合保存参数Parameters 中的Parameters可以绑定dataset数据源,而且既然有了更新,就要设定dataset的过去和现在,用那一个sqlcommand是要执行 指令的,select执行有返回的指令,返回多行和一行,多个ExecuteReader单行ExecuteScalar而增删改就是不返回具体 database的数据了,但是返回的是对增删改的结构,一句话,就是影响了几行数据ExecuteNonQuery 返回的就是变更,影响的行数
而于此对应的有
selectcommand
InsertCommand
DeleteCommand
SelectCommand
UpdateCommand
在sqldataadspter的updata,这些command(应该不包括selectcommand)被调用,使用每一个command的Parameters是自己所独有的,所以每个command有自己的Parameters集合.