锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 英语翻译 / 用ADO.NET调用存储过程中文译文
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
技术分类
讨论组翻译
输入参数和输出参数
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。

 

英文原文


用ADO.NET调用存储过程

介绍了执行SQL Server存储过程以及如何检索返回参数。

简介

存储过程是编译和存储在数据库内的SQL命令集合。每次执行一个SQL命令时,命令解析,优化完成,然后再执行命令。每次运行的命令的解析和优化查询是非常昂贵的。为了解决这个问题,我们有一组命令,统称为存储过程,它们已经解析和优化过,已经为随后执行做好了准备。本文介绍如何通过Ado.net调用存储过程和怎样处理存储过程调用中的输出参数。
最初创建一个SqlConnection类的对象,通过导入System.Data.SqlClient命名空间可以使用这个类。您必须提供连接字符串作为参数,其中包括数据源名称,数据库名称和身份验证凭据。使用Open()方法打开连接。

 SqlConnection con = new SqlConnection("Data Source= ; initial catalog= Northwind ; User Id= ; Password= '");
              
 con.open();

在Northwind数据库里,对Region表创建如下存储过程,它有两个参数,且没有任何输出参数。

 CREATE PROCEDURE RegionUpdate (@RegionID INTEGER,
 @RegionDescription NCHAR(50)) AS
 SET NOCOUNT OFF
 UPDATE Region
 SET RegionDescription = @RegionDescription

在提供了和要运行的存储过程命名对应的参数,提供了接收命令的连接情况下,可以创建一个SqlCommand对象。

 SqlCommand command = new SqlCommand("RegionUpdate",con);

更改存储过程命令对象的CommandType属性。

 command.CommandType = CommandType.StoredProcedure;

使用Parameters集合和SqlParameter类,把参数加入到命令对象里。

 command.Parameters.Add(new SqlParameter("@RegionID",SqlDbType.Int,0,"RegionID"));
 command.Parameters.Add(new SqlParameter("@RegionDescription",SqlDbType.NChar,50,"RegionDescription"));

用Value属性指定参数的值

 command.Parameters[0].Value=4;
 command.Parameters[1].Value="SouthEast";

使用ExecuteNonQuery方法执行存储过程,这个方法返回存储过程影响的行数。

 int i=command.ExecuteNonQuery();


现在让我们来看看如何执行带输出参数的存储过程,以及如何访问输出参数的结果。
创建如下有一个输出参数的存储过程。

 ALTER PROCEDURE RegionFind(@RegionDescription NCHAR(50) OUTPUT,
 @RegionID INTEGER )AS
 SELECT @RegionDescription =RegionDescription from Region where "mailto:RegionID=@RegionID">RegionID=@RegionID

上面的存储过程接受输入参数regionID和用输入的RegionID 来查RegionDescription,且把结果输出到RegionDescription参数里。

 SqlCommand command1 = new SqlCommand("RegionFind",con);
 command1.CommandType = CommandType.StoredProcedure;

Add the paremeters to the command1把参数添加到命令上

 command1.Parameters.Add(new SqlParameter ("@RegionDescription",SqlDbType.NChar ,50,ParameterDirection.Output,false,0,50,"RegionDescription",DataRowVersion.Default,null));
 command1.Parameters.Add(new SqlParameter("@RegionID" ,
 SqlDbType.Int,
 0 ,
 "RegionID" ));


注意到RegionDescription参数的ParameterDirection选项是Ouput。
指定输入参数RegionID的值。

 command1.Parameters["@RegionID"].Value = 4;

用UpdateRowSource.OutputParameters赋值给SqlCommand对象的UpdatedRowSource属性,这表示从这个存储过程返回的数据将通过输出参数实现。

 command1.UpdatedRowSource = UpdateRowSource.OutputParameters;

调用存储过程,用value属性来访问RegionID为4对应RegionDescription的值。

 command1.ExecuteNonQuery();
 string newRegionDescription =(string) command1.Parameters["@RegionDescription"].Value;
		     

Close the sql connection.关闭SQL连接。

 con.Close();


以同样的方式,通过确定适当的参数,你可以调用返回一组记录行的存储过程,使用ExecuteReader()来执行命令,命令的返回结果是可遍历记录集。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内