asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET调用存储过程两种方法浅析


发布日期:2023年11月14日
 
ASP.NET调用存储过程两种方法浅析

ASPNET调用存储过程的方法的介绍呢我们为了突出新方法的优点首先介绍一下在NET中调用存储过程的官方方法另外本文的所有示例程序均工作于SqlServer数据库上其它情况类似以后不再一一说明本文所有例子均采用C#语言

要在应用程序中访问数据库一般性的步骤是首先声明一个数据库连接SqlConnection然后声明一个数据库命令SqlCommand用来执行SQL语句和存储过程有了这两个对象后就可以根据自己的需要采用不同的执行方式达到目的需要补充的是不要忘记在页面上添加如下的引用语句using SystemDataSqlClient

就执行存储过程来说如果执行的是第一类存储过程那么就要用一个DataAdapter将结果填充到一个DataSet中然后就可以使用数据网格控件将结果呈现在页面上了如果执行的是第二和第三种存储过程则不需要此过程只需要根据特定的返回判定操作是否成功完成即可

ASPNET调用存储过程()执行一个没有参数的存储过程的代码如下

SqlConnection conn=new SqlConnection(connectionString);

SqlDataAdapter da = new SqlDataAdapter();

daSelectCommand = new SqlCommand();

daSelectCommandConnection = conn;

daSelectCommandCommandText = NameOfProcedure;

daSelectCommandCommandType = CommandTypeStoredProcedure;

然后只要选择适当的方式执行此处过程用于不同的目的即可

ASPNET调用存储过程()执行一个有参数的存储过程的代码如下(我们可以将调用存储过程的函数声明为ExeProcedure(string inputdate))

SqlConnection conn=new SqlConnection(connectionString);

SqlDataAdapter da = new SqlDataAdapter();

daSelectCommand = new SqlCommand();

daSelectCommandConnection = conn;

daSelectCommandCommandText = NameOfProcedure;

daSelectCommandCommandType = CommandTypeStoredProcedure;

(以上代码相同以下为要添加的代码)

param = new SqlParameter(@ParameterName SqlDbTypeDateTime);

paramDirection = ParameterDirectionInput;

paramValue = ConvertToDateTime(inputdate);

daSelectCommandParametersAdd(param);

这样就添加了一个输入参数若需要添加输出参数

param = new SqlParameter(@ParameterName SqlDbTypeDateTime);

paramDirection = ParameterDirectionOutput;

paramValue = ConvertToDateTime(inputdate);

daSelectCommandParametersAdd(param);

若要获得参储过程的返回值

param = new SqlParameter(@ParameterName SqlDbTypeDateTime);

paramDirection = ParameterDirectionReturnValue;

paramValue = ConvertToDateTime(inputdate);

daSelectCommandParametersAdd(param);

从上面的代码我们可以看出当存储过程比较多或者存储过程的参数比较多时这种方法会大大影响开发的速度另外一方面如果项目比较大那么这些用于数据库逻辑的函数在以后的维护中也是一个很大的负担那么有没有一种改进的方法可以解决这个问题呢?想到在执行没有参数的存储过程时只需要传入一个存储过程的名字就可以调用相应的存储过程而且在SqlServer数据库中我们可以直接在查询分析器中敲入存储过程名(参数列表)样的字符串就可以执行存储过程那么是否可以把这种思想应用到应用程序中呢?

于是在编译器中键入相应代码这些代码是在调用不带参数的存储过程的代码的基础上改的具体代码如下

SqlConnection conn=new SqlConnection(connectionString);

SqlDataAdapter da = new SqlDataAdapter();

daSelectCommand = new SqlCommand();

daSelectCommandConnection = conn;

daSelectCommandCommandText = NameOfProcedure(paraparapara;

daSelectCommandCommandType = CommandTypeStoredProcedure;

为了使代码更具有代表性要调用的存储过程的第一个和第二个参数都为字符串类型第三个参数为整型执行以后发现完全可以达到预期的效果!

两种ASPNET调用存储过程方法的比较

通过比较我们可以看到第二种方法具有一个很明显的优点那就是可以提高开发速度节省开发时间而且代码容易维护在一定程度上也减少了系统大小但是由于对存储过程参数的处理比较笼统如果要获取输出参数或者得到存储过程的返回值这种方法就不能满足需要了虽然如此但是这种方法毕竟可以让开发人员少些很大一部分的代码如果不需要获取输出参数和返回值那么几乎可以做到一劳永逸因此在实际的程序开发中这种方法还是具有一定的实用价值的

ASPNET调用存储过程两种方法就向你介绍到这里希望对你有所帮助

上一篇:提高ASP.NET应用程序性能的几招方法

下一篇:在Asp.net(C#)中添加程序实现验证码功能