c#.net command 命令详细分析

C# .Net面试题库总结(一) 1、简述 private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 2、ADO.NET中的五个主要对象 Connection:主要是... 阅读详情

 

前言

命令 (ADO.NET)

建立与数据源的连接后,可以使用 DbCommand 对象来执行命令并从数据源中返回结果。 您可以使用命令构造函数之一为要使用的 .NET Framework 数据提供程序创建命令。 构造函数可以采用可选参数,如要在数据源中执行的 SQL 语句、DbConnection 对象或 DbTransaction 对象。 您也可以将这些对象配置为命令的属性。

也可以使用 DbConnection 对象的 CreateCommand 方法创建用于特定连接的命令。 由命令执行的 SQL 语句可以使用 CommandText 属性进行配置。

执行命令 (ADO.NET)

包含在 .NET Framework 中的每个 .NET Framework 数据提供程序都拥有自己的继承自 DbCommand 的命令对象。 用于 OLE DB 的 .NET Framework 数据提供程序包括 OleDbCommand 对象,用于 SQL Server 的 .NET Framework 数据提供程序包括 SqlCommand 对象,用于 ODBC 的 .NET Framework 数据提供程序包括 OdbcCommand 对象,用于 Oracle 的 .NET Framework 数据提供程序包括 OracleCommand 对象。 其中每个对象都根据命令的类型和所需的返回值公开用于执行命令的方法,如下表所述。 。

命令

返回值

ExecuteReader

返回一个 DataReader 对象

ExecuteScalar

返回一个标量值

ExecuteNonQuery

执行不返回任何行的命令

ExecuteXMLReader

返回 XmlReader。 只用于 SqlCommand 对象

每个强类型命令对象还支持指定如何解释命令字符串的 CommandType 枚举,如下表所述。

CommandType

说明

Text

定义要在数据源处执行的语句的 SQL 命令

StoredProcedure

存储过程的名称。 您可以使用某一命令的 Parameters 属性访问输入和输出参数,并返回值(无论调用哪种 Execute 方法)。 当使用 ExecuteReader 时,在关闭 DataReader 后才能访问返回值和输出参数。

 

TableDirect

表的名称

 

2.1ADO.NET命令

2.1.1.Command对象:command对象继承于.NET Framework的IDbCommand类,该对象接口表示连接到数据源时执行的SQL语句。

Command对象是ADO.NET中的重要对象,它实现数据库操作,如查询、插入、修改和删除等。通常情况下可以通过

构造函数或者函数CreateCommand()创建对象Command,其中第一种为常用方式。

对象Command的属性CommandType提供三种执行命令类型:

(1)Text(文本)类型 用于执行SQL Server语句,由SQL语句构成数据库操作文本,Command对象可以把该文本直接传递给数据库,

不需要进行任何处理。

(2)Stored Procedure(存储过程)类型 用于调用并执行存储过程的命令,存储过程是一种特殊的数据库命令,可以把多个命令集中起来

一次提交给数据库,可以提供数据库的执行效率。

(3)TableDirect类型 一种特殊类型的Command命令,它从数据库返回一个完整的表,等价于Select *From TableName来调用Text类型的Command命令。

2.1.2使用Command命令对象执行SQL语句

1.ExecuteScalar()方法/函数 返回第一个结果集中第一行的第一列记录。

2.ExecuteReader()执行行的命令,返回一个DataReader对象。DataReader是一种只读的、向前的数据库记录流。

3.ExecuteNonQuery() 返回受命令影响记录的行数,它可以执行INSERT、DELETE、UPDATE、SET语句及Transact-SQL等命令。

2.2使用Command命令的Parameters方法获取数据

Command命令参数

  1.SQL语句和存储过程可以有输入输出参数以及返回值

  2.Command对象参数用来设置或者返回这些参数

 3.SqlParameter OleDbParameter

 4.Parameter对象的属性

 (1)ParameterName命令参数的名称,例如:@Catld

 (2)DbType 连接到数据库类型,例如:SqlType和OleDbType

 (3)Direction表明参数的方向——输入、输出、输入/输出或返回

 (4)Value指定参数的值

 (5)Size指定参数大小

 

实例和具体介绍

ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库。同Connection对象一样,Command也有两种:OleDbCommand和SqlCommand.其区别同Connection对象。

要操纵数据库,必须先使用Connection来连接到数据库,再创建一个Command来查询。有几种创建方式,例:

SqlCommand cmd;

string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
string strqry="select * from Categories";
SqlConnection con=new SqlConnection(strCon);
con.Open();
¹cmd=con.CreateCommand(); //
这里使用用Connection对象的CreateCommand方法来创建一个Command对象。

 cmd.CommandText=strqry;
 SqlDataReader reader=cmd.ExecuteReader();

² cmd=new SqlCommand();   //直接使用new 关键字来创建
 cmd.CommandText=strqry;
 cmd.Connection=con;   //
设置与数据库的连接

³cmd=new SqlCommand(strqry,con);//直接在new的时候带两个参数来创建


执行方式:

cmd.ExecuteReader();cmd.ExecuteNonQuery();cmd.ExecuteScalar();

cmd.ExecuteXmlReader();)

1,ExecuteReader();返回一个SqlDataReader对象或OleDbDataReader对象,这个看你的程序的需要去做。可以通过这个对象来检查查询结果,它提供了“游水”式的执行方式,即从结果中读取一行之后,移动到另一行,则前一行就无法再用。有一点要注意的是执行之后,要等到手动去调用Read()方法之后,DataReader对象才会移动到结果集的第一行,同时此方法也返回一个Bool值,表明下一行是否可用,返回True则可用,返回False则到达结果集末尾。

使用DataReader可以提高执行效率,有两种方式可以提高代码的性能:一种是基于序号的查找,一个是使用适当的Get方法来查找。因为查询出来的结果一般都不会改变,除非再次改动查询语句,因此可以通过定位列的位置来查找记录。用这种方法有一个问题,就是可能知道一列的名称而不知道其所在的位置,这个问题的解决方案是通过调用DataReader 对象的GetOrdinal()方法,此方法接收一个列名并返回此列名所在的列号。例:

int id=reader.GetOrdinal("CategoryName");
while(reader.Read())
{
   Response.Write(reader[id]);
 }
reader.Close();

至于第二种方式很直观,例:

while(reader.Read())
{
 Response.Write(reader.GetInt32(0).ToString()+" "+reader.GetString(1).ToString()+" <br>");
}

DataReader的GetInt32()和GetString()通过接收一个列号来返回一个列的值,这两种是最常用的,其中还有很多其它的类型。

(注:DataReader对象在调用Close()方法即关闭与数据库的连接,如果在没有关闭之前又重新打开第二个连接,则会产生一条异常信息)

2.,ExecuteNonQuery() 这个方法并不返回一个DataReader对象,而是返回一个int类型的值,即在执行之后在数据库中所影响的行数。

例:

int affectrows=cmd.ExecuteNonQuery();
Response.Write(affectrows +"
条记录受影响");

3,ExecuteScalar() 这个方法不接受任何参数,仅仅返回查询结果集中的第一行第一列,而忽略了其它的行和列,而且返回的是一个object类型,在使用之前必须先将它强制转换为所需类型。如果返回的仅仅是一个单独的数据元,则可以使用此方法来提高代码的性能。例:

string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
string strqry="select count(*) from Categories";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlCommand cmd=con.CreateCommand();
int i=Convert.ToInt32(cmd.ExecuteScalar());//
必须强制转换

4,ExecuteXmlReader() 此方法用于XML操作,返回一个XmlReader对象,由于系统默认没有引用 System.Xml名空间,因此在使用前必须前引入。例:

string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand("select * from Categories FOR XML AUTO, XMLDATA", con);
XmlReader xr=cmd.ExecuteXmlReader();
Response.Write(xr.AttributeCount);//
这里获取当前节点上的属性个数

xr.Close();

执行完毕之后,照样要显式地调用Close()方法,否则会抛出异常。

使用参数化的查询

先看一段SQL语句:select CategoryID,Description from Categories where CategoryID=? 其中的问号就是一个参数。但在使用的时候必须是带有@前缀的命名参数,因为.NET数据提供程序不支持这个通用的参数标记“?”.使用参数化的查询可以大大地简化编程,而且执行效率也比直接查询字符串要高,也更方便,很多情况下都需要更改查询字符串,这种方式就提供了方便,只需更改参数的值即可。例:

string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
SqlConnection con=new SqlConnection(strCon);
con.Open();
string strqry="select * from Categories where
CategoryID=@CategoryID";//带参数的查询

SqlCommand cmd=new SqlCommand(strqry,con);
cmd.Parameters.Add("@CategoryID",SqlDbType.Int,4);//
给参数赋于同数据库中相同的类型
cmd.Parameters["@CategoryID"].Value="3";//
给参数赋值,可灵活改变
SqlDataReader r=cmd.ExecuteReader();

while(r.Read())
{
Response.Write(r.GetString(2)+"<br>");//
取出指定参数列的值

}
con.Close();//
切记关闭

 

C# ADO.NET 两者的区别在于“非断开式访问”在整个操作过程中需要保持数据库连接,而“断开式访问”只需要在执行数据库命令数据命令时保持数据库连接,而“断开式访问”只需要在执行数据库命令时保持数据库连接。一、DataReader对象是数据读取对象,它提供了一个只读只进的数据读取器,用于查询结果中读取数据,它每次只能读取一行数据,并且在读取过程中,必须保持连接处于打开状态。server=服务器名;database=数据库名;四、使用connection对象,command对象和datareader对象实现非断开式访问数据库。 阅读详情

相关推荐

C# ADO.NET数据库操作 Connection Command

ADO (Active Data Object) 是一个 COM 组件类库,用于访问数据库,而 ADO.NET 是在 .NET 平台上访问数据库的组件。 在使用 ADO.NET 进行数据库操作时通常会用到 5 个类: 别是 Connection 类、 Command 类、DataReader 类、DataAdapter 类、DataSet...

zs1342084776的博客 1068

C# MVVM 中Command的用法

MVVM中的Command类的使用

weixin_42774407的博客 3886

C#中Command对象的用法

介绍了C#中Command对象的各种用法和详细解释

C#与数据库访问技术总结(五)之Command对象的常用方法

Command对象的常用方法 说明:上篇总结了Command对象的几个数据成员,这节总结Command对象的常用方法。   同样,在不同的数据提供者的内部,Command对象的名称是不同的,在SQL Server Data Provider里叫SqlCommand,而在OLE DB Data Provider里叫OleDbCommand。 下面将详细介绍Command类型对象的...

沐 白 3163

泛微E9表单建模查询列表勾选后带入流程明细表中

注意:参照下图各项配置,否则会有问题。

泛微二次开发后端知识总结 5313

Cube生成定时器2触发双ADC同步采集并用DMA传输

前言 用cube生成一个用定时器触发ADC1,ADC2同步采集的程序,单片机选择的是STM32L476RGT6,用定时器2进行ADC采集触发,更改定时器2的定时周期便可以更改ADC的采样周期,ADC1和ADC2使用同步规则模式,并用DMA进行数据的传输。 STM32的ADC采样完成总共需要的时间是 ADC完成采样时间=采样周期+12个转换周期 举个例子,假如ADC的时钟是15MHz,采样周期是3个周期,3个采样周期加上12个转换周期,一共是15个周期,因为时钟是15MHz,所以完成一次ADC转换总共需要的时

一行代码的博客 4516

C# 设计模式-命令(Command)

将一个请求封装为一个对象,达到用不同请求对客户进行参数化。调用者通过某个命令来调用接收者执行相关操作,减弱调用者与接收者的耦合度。 主要组成: Command-命令父类或接口 ConcreteCommand-具体命令 Invoker-调用者 Receiver-接收者,执行命令指定的相关操作 相关类: using System; namespace Command {

浊酒入清梦的博客 2157

Matlab图像处理频域滤波实现——高斯低通、高通、带通带阻滤波器

如果你想要进一步了解更多的相关知识,

小嘤熊的博客 1万+

asp.net中SqlCommand对象使用

   一、SqlCommand常见的属性:SqlCommand属性为执行命令作准备。1、 CommandText属性:执行的SQL语句;2、 Connection属性:连接数据库SqlConnection对象;3、 CommandType属性:解析CommandText的值;            SqlCommand cmd = new SqlCommand("login

张亚京 1818

Linux基础——“C语言高级编程” C语言中的细节你真的知道吗?

文章目录GCC简介 GCC简介 gcc 所支持后缀名解释 .c c原始程序 .C / .cc /.cxx C++原始程

weixin_44278698的博客 2513

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

演化博弈论是研究个体在特定环境中如何通过策略选择与其他个体进行互动的学科。这一理论在生物学、经济学和社会科学等多个领域都有广泛应用。本文将深入探讨双方演化博弈的原理及其过程,并解读一段 MATLAB 代码,展示如何模拟这一过程。

当回首往事的时候,不会因虚度年华而悔恨,也不会因碌碌无为而羞愧。 6202

c#.net command 命令详细分析(1)

命令 (ADO.NET) 建立与数据源的连接后,可以使用 DbCommand 对象来执行命令并从数据源中返回结果。 您可以使用命令构造函数之一为要使用的 .NET Framework 数据提供程序创建命令。 构造函数可以采用可选参数,如要在数据源中执行的 SQL 语句、DbConnection 对象或 DbTransaction 对象。 您也可以将这些对象配置为命令的属性。 也可以使用 Db...

king5439的专栏 379

基于YOLO26/11/v8算法的Web目标检测系统,人脸表情识别系统,Django+Vue3 的前后端分离,实现摄像头实时识别,YOLO26/YOLO11/v8 + LLM大模型智能分析,科研必备

在人工智能迈向通用化(AGI)的今天,“视觉感知 + 语言理解”的多模态联合是未来的趋势。单纯的检测画框已经无法满足复杂的业务需求,如何让系统“看懂”画面并进行“思考”,是当前视觉项目的重点。我们知道目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。因此本项目将 YOLO 目标检测模型(兼容 YOLO26/v11/v8 系列)与 DeepSeek 等顶流大语言模型(LLM) 进行联合,使用 Django (后端) + Vue3 (前端) 技术栈

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2845

c#.net command 命令详细分析(2)

实例和具体介绍 ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库。同Connection对象一样,Command也有两种:OleDbCommand和SqlCommand.其区别同Connection对象。 要操纵数据库,必须先使用Connection来连接到数据库,再创建一个Command来查询。有几种创建方式,例: SqlCommand cm...

king5439的专栏 190

掌握C++新特性中智能指针的综合指南

本文是一篇关于C++中智能指针的综合指南,旨在深入探讨现代内存管理的核心概念和技术。智能指针是C++中一种强大的工具,可以帮助开发人员更安全、高效地管理内存资源。通过详细解析各种类型的智能指针,包括unique_ptr、shared_ptr和weak_ptr,读者将了解它们的原理、用法和适用场景。本文将重点介绍智能指针的优势,如自动内存释放、避免内存泄漏和循环引用等问题。此外,还将讨论智能指针与传统指针的区别,并提供一些最佳实践和实用技巧,帮助读者在实际项目中正确、高效地使用智能指针。

Lion_Long的博客 1200

2ED2410-EM的使用

2ED2410-EM的使用

让你爱上电路设计 980

c#.net command 命令

前言 命令 (ADO.NET) 建立与数据源的连接后,可以使用 DbCommand 对象来执行命令并从数据源中返回结果。 您可以使用命令构造函数之一为要使用的 .NET Framework 数据提供程序创建命令。 构造函数可以采用可选参数,如要在数据源中执行的 SQL 语句、DbConnection 对象或 DbTransaction 对象。 您也可以将这些对象配置为命令的属性。 也可以使用

杨千羽的学习历程 4477

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C#连接数据库之Connection、Command、DataReader用法总结

目录 Connection连接字符串 创建并使用连接对象 数据连接的两个方法是Open()和Colse()。 Command对象与DataReader对象 常用属性: 常用方法: 大多数应用程序都需要和数据库交互。同其他.NET开发语言一样,在C#语言中对数据库的访问是通过.NET框架中的ADO.NET来实现的。 ADO是一个COM组件库,主要包括Connection、Command、Recordset对象等。他所实现的功能包括,打开与数据库的连接,把一下数据选出来,放在记录集中,这些数据由

小小张自由—>张有博 4866

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# 使用ADO.NET访问数据全解析

ADO.NET(ActiveX Data Objects for.NET)是一组类库,专门用于在.NET 环境中进行数据访问。它支持多种数据源,例如 SQL Server、Oracle、MySQL 等,为开发者提供了统一的数据访问接口,极大地简化了数据访问的流程。

zsnandzmn的博客 1599

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# ADO.NET数据库操作

C# ADO.NET数据库操作 C# ADO.NET数据库操作及常用类概述 C# Connection:连接数据库 C# Command:操作数据库 C# DataReader:读取查询结果 C# DataSet和DataTable:将查询结果保存到DataSet或DataTable中 C# DataRow和DataColumn:更新数据表 C# DataSet:更新数据库 C# ComboBox:组合框控件数据绑定 C# DataGridView:数据表格控件数据绑定 C# 数据表

qq_38599908的博客 4002

【C#设计模式】14.命令模式(Command Pattern)【行为型】

1.1 动机(Motivate) 在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。 1.2 意图(Intent) 将一个请求封装为一个对象,从而使你可用不同的请求对客户(客户程序,也是行为的请求者)进行参数化;对请求排队或记录请求日志,以及支持可撤销的操..

星Yeah 的博客 2559

Fluent Command Line Parser 使用教程

Fluent Command Line Parser 是一个简单且强类型的 .NET C# 命令行解析库,使用流畅且易于使用的接口。该项目旨在帮助开发者轻松地解析命令行参数,并将其映射到强类型的对象中。通过 Fluent API,开发者可以直观地定义命令行选项,并指定其行为和默认值。 ## 2. 项目快速启动 ### 安装 你可以通过 NuGet 安装 Fluent Command Line

gitblog_00068的博客 785

C#可视化二:ADO.NET基础

知识点一:ADO.NET 简介 为什么需要ADO.NET这门技术,C#程序需要访问数据库中的数据 微软公司提供的访问数据库技术,是.NET Framework中负责数据访问类库集,是应用程序和数据源之间的桥梁(不填充就没有数据) 作用范围:能够访问SQL Server数据库和XML等数据源;Oracle数据库 体系结构: 1,.NET Framework框架 汽车为什么踩油门就会加速,打方...

SpringKakashi 2740

C#对SQL数据库操作类简介:Connection、Command、DataReader、DataSet、DataAdapter

操作数据库使用的便是ADO.NET中的几个类,这几个类分别为:1.Connection类:用于创建于数据库的连接。2.Command类:用于下达SQL命令3.DataReader类:读取数据4.DataSet类:数据集5.DataAdapter类:数据适配命令。

qq_46104221的博客 2269

Pinpoint fastjson 插件实战指南:JSON 序列化与反序列化的调用链追踪

本指南聚焦 Pinpoint 为阿里巴巴 fastjson 库提供的 APM 插件([agent-module/plugins/fastjson](https://link.gitcode.com/i/91ad1c2664906164e0d8738ad57978bd)),讲解如何通过一个开关配置对 `com.alibaba.fastjson.JSON` 的核心 API 进行埋点,从而在分布式调用链

gitblog_00891的博客 747

C#中ADO.NET

ADO.NET是什么?   ADO.NET是.Net平台提供和数据库交互的类库集,我们可以通过它对SQLSERVER,XML,Oracle等这样的数据源进行访问。 应用程序可以使用ADO.NET链接到数据源,进行增、删、改、查操作。 ADO.NET主要对象有哪些   ADO.NET主要包含以下五个核心对象:   1.Connection: 用于和数据源建立连接。   2.Command:用于执行SQL命令。   3.DataReader:从数据源读取只进且只读的数据流,读取过程中必...

weixin_44548405的博客 960
上一篇: 数据库连接发展史(转载)
下一篇: 认识存储过程
-1悟空1-
博客等级 码龄18年 18粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值