百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

168.C# Command对象 c# implements

xsobi 2024-12-18 17:46 2 浏览

摘要


使用Connection对象与数据源建∥.连接后,可以使用Command对象对数据源执行查询、添加、删除利和修收等各种操作,操作实现的方可以是使用SQL语句,也可以是使用存储过程。根据.NET Framework数据提供程序的不同Command对象可以分成4种,分别是SqlCommand、OleDbCommand、OdbcCommand和DracleCommand,在实际的编程过程中应该根据访问的数据源不同,选择相对应的Command对象。

正文


属性



CommandText

获取或设置要在数据源中执行的 Transact-SQL 语句、表名或存储过程。

CommandTimeout

获取或设置在终止尝试执行命令并生成错误之前的等待时间(以秒为单位)。

CommandType

获取或设置一个值,该值指示解释 CommandText 属性的方式。

Connection

获取或设置 SqlCommand 的此实例使用的 SqlConnection。

DbConnection

获取或设置此 DbConnection 使用的 DbCommand。<br><br>(继承自 DbCommand)

DbParameterCollection

获取 DbParameter 对象的集合。<br><br>(继承自 DbCommand)

DbTransaction

获取或设置将在其中执行此 DbCommand 对象的 DbTransaction。<br><br>(继承自 DbCommand)

DesignTimeVisible

获取或设置一个值,该值指示命令对象是否应在 Windows 窗体设计器控件中可见。

Notification

获取或设置一个指定绑定到此命令的 SqlNotificationRequest 对象的值。

Parameters

获取 SqlParameterCollection。

Transaction

获取或设置要在其中执行 SqlTransaction 的 SqlCommand。

UpdatedRowSource

获取或设置命令结果如何应用于 DataRow Update 方法 DbDataAdapter的用法。

方法



BeginExecuteNonQuery()

启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。

BeginExecuteNonQuery(AsyncCallback, Object)

在给定回调过程和状态信息的情况下,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。

BeginExecuteReader()

启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。

BeginExecuteReader(AsyncCallback, Object)

在给定回调过程和状态信息的情况下,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

在给定回调过程和状态信息的情况下,通过使用 CommandBehavior 值之一并从服务器中检索一个或多个结果集,启动由此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。

BeginExecuteReader(CommandBehavior)

通过使用 CommandBehavior 值之一,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。

BeginExecuteXmlReader()

启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并将结果作为 XmlReader 对象返回。

BeginExecuteXmlReader(AsyncCallback, Object)

通过使用回调过程,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并将结果作为 XmlReader 对象返回。

Cancel()

尝试取消 SqlCommand 的执行。

CreateDbParameter()

创建 DbParameter 对象的新实例。<br><br>(继承自 DbCommand)

CreateParameter()

创建 SqlParameter 对象的新实例。

EndExecuteNonQuery(IAsyncResult)

完成 Transact-SQL 语句的异步执行。

EndExecuteReader(IAsyncResult)

完成 Transact-SQL 语句的异步执行,从而返回请求的 SqlDataReader。

EndExecuteXmlReader(IAsyncResult)

完成 Transact-SQL 语句的异步执行,从而将请求的数据以 XML 形式返回。

ExecuteDbDataReader(CommandBehavior)

针对其连接执行命令,返回可用于访问结果的命令 DbDataReader 。<br><br>(继承自 DbCommand)

ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

提供程序应执行该方法对 ExecuteReader 重载提供非默认的实现。<br><br>默认实现调用同步 ExecuteReader() 方法并返回已完成任务,以便阻止调用线程。 如果传递到已取消的取消标记,则默认实现将返回已取消的任务。 ExecuteReader 引发的异常将通过返回的任务异常属性传递。<br><br>该方法可用于请求操作之前接受取消标记。 实现可能会忽略该请求。<br><br>(继承自 DbCommand)

ExecuteNonQuery()

对连接执行 Transact-SQL 语句并返回受影响的行数。

ExecuteNonQueryAsync()

一个异步版本 ExecuteNonQuery(),它对其连接对象执行命令,返回受影响的行数。<br><br>通过 CancellationToken.None 调用 ExecuteNonQueryAsync(CancellationToken)。<br><br>(继承自 DbCommand)

ExecuteNonQueryAsync(CancellationToken)

异步版本,该版本ExecuteNonQuery()针对连接执行 Transact-SQL 语句,并返回受影响的行数。 取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。

ExecuteReader()

将 CommandText 发送到 Connection,并生成 SqlDataReader。

ExecuteReader(CommandBehavior)

将 CommandText 发送到 Connection,并使用 CommandBehavior 值之一生成 SqlDataReader。

ExecuteReaderAsync()

ExecuteReader() 的异步版本,它可以将 CommandText 发送到 Connection,并生成 SqlDataReader。 将通过返回的任务对象报告异常。

ExecuteReaderAsync(CancellationToken)

ExecuteReader() 的异步版本,它可以将 CommandText 发送到 Connection,并生成 SqlDataReader。<br><br>取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。

ExecuteReaderAsync(CommandBehavior)

ExecuteReader(CommandBehavior) 的异步版本,用于将 CommandText 发送到 Connection,并生成一个 SqlDataReader。 将通过返回的任务对象报告异常。

ExecuteReaderAsync(CommandBehavior, CancellationToken)

ExecuteReader(CommandBehavior) 的异步版本,它可以将 CommandText 发送到 Connection,并生成 SqlDataReader。<br><br>取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。

ExecuteScalar()

执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。

ExecuteScalarAsync()

异步版本的 ExecuteScalar()命令执行该命令,并返回第一个返回结果集中第一行的第一列。 将忽略所有其他列、行和结果集。<br><br>通过 CancellationToken.None 调用 ExecuteScalarAsync(CancellationToken)。<br><br>(继承自 DbCommand)

ExecuteScalarAsync(CancellationToken)

ExecuteScalar() 的异步版本,该版本异步执行查询,并返回由查询返回的结果集中的第一行的第一列。 忽略其他列或行。<br><br>取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。

ExecuteXmlReader()

将 CommandText 发送到 Connection,并生成一个 XmlReader 对象。

ExecuteXmlReaderAsync()

ExecuteXmlReader() 的异步版本,可以将 CommandText 发送到 Connection,并生成 XmlReader 对象。<br><br>将通过返回的任务对象报告异常。

ExecuteXmlReaderAsync(CancellationToken)

ExecuteXmlReader() 的异步版本,可以将 CommandText 发送到 Connection,并生成 XmlReader 对象。<br><br>取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。

ResetCommandTimeout()

将 CommandTimeout 属性重置为其默认值。

Command对象也称为数据库命令对象,Command对象主要执行包括添加、删除、修改及查询数据的操作的命令。也可以用来执行存储过程。用于执行存储过程时需要将Command对象的CommandType 属性设置为CommandType.StoredProcedure,默认情况下CommandType 属性为CommandType.Text,表示执行的是普通SQL语句。Command主要有三个方法:

  • ExecuteNonQuery
  • ExecuteScalar
  • ExecuteReader

ExecuteNonQuery():执行一个SQL语句,返回受影响的行数,这个方法主要用于执行对数据库执行增加、更新、删除操作,注意查询的时候不是调用这个方法。用于完成insert,delete,update操作。

string sql = "INSERT  INTO wms_material(material_no, mlfb, description, repair_type, location" +
    ", actual_qty, qty, notification_no,urequestid) VALUES ('" + txtMaterialNo.Text + "','" + txtMlfb.Text
    + "','" + txtDescription.Text + "','" + cboRepairType.Text + "','" + txtLocation.Text
    + "'," + nudActualQty.Value + "," + nudQty.Value + ",'" + txtNotificationNo.Text + "','" + Guid.NewGuid().ToString() + "')";
SqlCommand cmd = new SqlCommand(sql, conn);
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
{
    MessageBox.Show("保存数据成功!");
    this.Close();
}
else
{
    MessageBox.Show("保存数据出错!");
}

使用SqlParameter参数

string sql = "update wms_material set material_no=@material_no, mlfb=@mlfb,description=@description,repair_type=@repair_type" +
   ",location=@location,actual_qty=@actual_qty,qty=@qty,notification_no=@notification_no where id=@id";
SqlTransaction transaction = conn.BeginTransaction();
SqlCommand sqlcom = new SqlCommand(sql, conn);
try
{
    sqlcom.Transaction = transaction;
    sqlcom.Parameters.Add(new SqlParameter("@material_no", txtMaterialNo.Text));
    sqlcom.Parameters.Add(new SqlParameter("@mlfb", txtMlfb.Text));
    sqlcom.Parameters.Add(new SqlParameter("@description", txtDescription.Text));
    sqlcom.Parameters.Add(new SqlParameter("@repair_type", cboRepairType.Text));
    sqlcom.Parameters.Add(new SqlParameter("@location", txtLocation.Text));
    sqlcom.Parameters.Add(new SqlParameter("@actual_qty", nudActualQty.Text));
    sqlcom.Parameters.Add(new SqlParameter("@qty", nudQty.Text));
    sqlcom.Parameters.Add(new SqlParameter("@notification_no", txtNotificationNo.Text));
    sqlcom.Parameters.Add(new SqlParameter("@id", id));
    sqlcom.ExecuteNonQuery();
    transaction.Commit();
    MessageBox.Show("保存数据成功!");
    this.Close();
}
catch
{
    transaction.Rollback();
    MessageBox.Show("保存数据出错!");
}

删除

SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_delete_material";
command.Parameters.Add(new SqlParameter("@id", id));
command.ExecuteNonQuery();

ExecuteScalar ()从数据库检索单个值。这个方法主要用于统计操作。ExecuteScalar ()这个方法是针对SQL语句执行的结果是一行一列的结果集,这个方法只返回查询结果集的第一行第一列。 executeScalar主要用于查询单行单列的值,如聚合函数(count,max,min,agv,sum)。

string sql = "select count(*) from wms_material where material_no='" + txtMaterialNo.Text + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
var ret = int.Parse(cmd.ExecuteScalar().ToString());

ExecuteReader用于实现只进只读的高效数据查询。 ExecuteReader:返回一个SqlDataReader对象,可以通过这个对象来检查查询结果,它提供了只进只读的执行方式,即从结果中读取一行之后,移动到另一行,则前一行就无法再用。有一点要注意的是执行之后,要等到手动去调用Read()方法之后,DataReader对象才会移动到结果集的第一行,同时此方法也返回一个Bool值,表明下一行是否可用,返回True则可用,返回False则到达结果集末尾。

string sql = "select * from wms_material where mlfb like '%" + txtSearch.Text + "%'";
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, connection);
SqlDataReader sr = cmd.ExecuteReader();
while (sr.Read())
{
    ListViewItem item = new ListViewItem(sr["material_no"].ToString());
    item.SubItems.Add(sr["mlfb"].ToString());
    item.SubItems.Add(sr["repair_type"].ToString());
    item.SubItems.Add(sr["location"].ToString());
    item.SubItems.Add(sr["qty"].ToString());
    item.SubItems.Add(sr["actual_qty"].ToString());
    item.SubItems.Add(sr["description"].ToString());
    lsvMain.Items.Add(item);
}
sr.Close();

相关推荐

好用的云函数!后端低代码接口开发,零基础编写API接口

前言在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作。不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人,通过...

快速上手:Windows 平台上 cURL 命令的使用方法

在工作流程中,为了快速验证API接口有效性,团队成员经常转向直接执行cURL命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用Windows系统的用户来说,这里有一套详细...

使用 Golang net/http 包:基础入门与实战

简介Go的net/http包是构建HTTP服务的核心库,功能强大且易于使用。它提供了基本的HTTP客户端和服务端支持,可以快速构建RESTAPI、Web应用等服务。本文将介绍ne...

#小白接口# 使用云函数,人人都能编写和发布自己的API接口

你只需编写简单的云函数,就可以实现自己的业务逻辑,发布后就可以生成自己的接口给客户端调用。果创云支持对云函数进行在线接口编程,进入开放平台我的接口-在线接口编程,设计一个新接口,设计和配置好接口参...

极度精神分裂:我家没有墙面开关,但我虚拟出来了一系列开关

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:iN在之前和大家说过,在iN的家里是没有墙面开关的。...

window使用curl命令的注意事项 curl命令用法

cmd-使用curl命令的注意点前言最近在cmd中使用curl命令来测试restapi,发现有不少问题,这里记录一下。在cmd中使用curl命令的注意事项json不能由单引号包括起来json...

Linux 系统curl命令使用详解 linuxctrl

curl是一个强大的命令行工具,用于在Linux系统中进行数据传输。它支持多种协议,包括HTTP、HTTPS、FTP等,用于下载或上传数据,执行Web请求等。curl命令的常见用法和解...

Tornado 入门:初学者指南 tornados

Tornado是一个功能强大的PythonWeb框架和异步网络库。它最初是为了处理实时Web服务中的数千个同时连接而开发的。它独特的Web服务器和框架功能组合使其成为开发高性能Web...

PHP Curl的简单使用 php curl formdata

本文写给刚入PHP坑不久的新手们,作为工具文档,方便用时查阅。CURL是一个非常强大的开源库,它支持很多种协议,例如,HTTP、HTTPS、FTP、TELENT等。日常开发中,我们经常会需要用到cur...

Rust 服务器、服务和应用程序:7 Rust 中的服务器端 Web 应用简介

本章涵盖使用Actix提供静态网页...

我给 Apache 顶级项目提了个 Bug apache顶级项目有哪些

这篇文章记录了给Apache顶级项目-分库分表中间件ShardingSphere提交Bug的历程。说实话,这是一次比较曲折的Bug跟踪之旅。10月28日,我们在GitHub上提...

linux文件下载、服务器交互(curl)

基础环境curl命令描述...

curl简单使用 curl sh

1.curl--help#查看关键字2.curl-A“(添加user-agent<name>SendUser-Agent<name>toserver)”...

常用linux命令:curl 常用linux命令大全

//获取网页内容//不加任何选项使用curl时,默认会发送GET请求来获取内容到标准输出$curlhttp://www.baidu.com//输出<!DOCTYPEh...

三十七,Web渗透提高班之hack the box在线靶场注册及入门知识

一.注册hacktheboxHackTheBox是一个在线平台,允许测试您的渗透技能和代码,并与其他类似兴趣的成员交流想法和方法。它包含一些不断更新的挑战,并且模拟真实场景,其风格更倾向于CT...