使用C#代码运行任何存储过程






1.30/5 (21投票s)
该代码可以运行任何类型的存储过程。
从这里下载和阅读最新的 (v2) 代码的详细信息
介绍
该代码将帮助开发人员轻松开发代码以从 .Net 运行存储过程(如果您构建了 .dll 文件)。任何人都可以编写几行代码来使用它。 如果有任何人发现任何错误,请通过 sumanbiswas@aol.in 告知我。 要了解更多关于此类编程的信息,请访问我的博客 http://socketprogramming.blogspot.com。
背景
当我尝试从 C# 运行存储过程时,我看到要运行单个存储过程需要编写几行代码,并且要传递参数需要编写更多的代码。 所以我决定编写一些代码,通过使用存储过程可以非常快速地运行。 现在我的代码可以通过调用一个函数来运行存储过程,每个参数只需要一行代码。
使用此代码来运行存储过程
您可以通过调用两个静态方法来运行任何存储过程。 它们是 -
1. spArgumentsCollection - 这是 SP 类的一个静态方法,用于将参数传递给存储过程。 它有四个参数,例如,SP.spArgumentsCollection(arLst, "@nextName", "Suman Biswas", "varchar"); 这里 ‘SP’ 是类名,‘arLst’ 是一个 ArrayList,“@nextName” 是存储过程中的参数名,“Suman Biswas” 是参数的值,“varchar” 是参数类型(在版本 2 中,这已更新为枚举类型)。
2. RunStoredProcedure- 这用于运行存储过程。 如果存储过程有参数,则需要在 ArrayList 中设置参数,然后调用该方法。 例如,SP.RunStoredProcedure(cnnStr, "UpdateName", arLst); 这里 ‘cnnStr’ 是数据库的连接字符串,“UpdateName” 是存储过程的名称,arLst 是参数的 ArrayList。 通过此数组列表,参数值传递给存储过程。 这还有一个重载方法,带有额外的参数 DataSet,用于使用它的 DataTable 来存储检索到的值。
此代码实际如何工作
SP 类有一个子类 SPArgBuild ,它有助于将参数传递给存储过程。 当调用 spArgumentsCollection 方法时,它会在内部创建一个 SPArgBuild 对象,并将传递的值设置为新对象的属性,然后返回该对象,该对象作为 ArrayList 元素(此处为 arLst)保存,并返回 ArrayList。 这样,ArrayList 保存存储过程的所有参数。
接下来,当调用 RunStoredProcedure 时,从 ArrayList 检索数据,并将这些数据设置为命令对象的参数。 然后发送命令以执行存储过程。
通过执行示例存储过程的示例
要运行该代码,我们将遵循以下步骤 –
(1) 创建一个表
CREATE TABLE client( id int IDENTITY(1,1) NOT NULL, Name varchar(64) NULL, jdate datetime NULL )
(2) 在其中插入一些行
INSERT INTO client(Name,jdate)VALUES ('Taniya',getdate()) INSERT INTO client(Name,jdate)VALUES ('Jhuma',getdate()) INSERT INTO client(Name,jdate)VALUES ('Ganesh',getdate())
(3) 创建一个存储过程
create procedure UpdateName ( @nextName varchar(256), @id int ) as update client set name=@nextName where id=@id
(4) 通过我的代码运行存储过程。
ArrayList arLst = new ArrayList();//Create an Array List //Set argument data for Stored Procedure SP.spArgumentsCollection(arLst, "@nextName", "Suman Biswas", "varchar"); SP.spArgumentsCollection(arLst, "@id", "2", "int"); //Now run stored procedure. SP.RunStoredProcedure(cnnStr, "UpdateName", arLst);
现在代码已完成,立即尝试。