如何在Data Access Application Block中得到存储的过程的返回值,Parameters["@RETURN_VALUE"].Value;
2007-08-20 09:11
573 查看
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
1、首先建立一个具有返回值的存储过程,作为示例,我就简单的建一个存储过程,如下:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
create proc test
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
@id int
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
as
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
declare @flag int
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
select * from person where id=@id
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if @@rowcount > 0
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
set @flag=1
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
else
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
set @flag=0
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
return @flag
zz
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
我们要在程序中获得这个返回值的方法如下:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
[TestMethod]
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public void TestReturnValue()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Database db = DatabaseFactory.CreateDatabase();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
DbCommand dbcomm = db.GetStoredProcCommand("test");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
db.AddInParameter(dbcomm, "@id", DbType.Int32,1);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
//关键在这里,添加一个参数,类型为ReturnValue
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
db.AddParameter(dbcomm, "@RETURN_VALUE", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
db.ExecuteNonQuery(dbcomm);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int testvalue = (int)dbcomm.Parameters["@RETURN_VALUE"].Value;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Assert.AreEqual(testvalue, 1);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
相关文章推荐
- 使用DataAccessApplicationBlock得到存储过程的返回值
- 使用DataAccessApplicationBlock得到存储过程的返回值
- 使用Data Access Application Block 得到存储过程的返回值
- 使用Data Access Application Block 得到存储过程的返回值
- Enterprise Library 2.0系列:如何得到存储过程的 ReturnValue 值?
- Data Access Application Block QuickStart 的详细使用过程
- SQL SERVER存储过程执行返回Return Value=0,未输出预期结果
- sql 2005存储过程触发器出现 SQLNCLI" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持”解决
- 关于 "java 如何调用Oracle存储过程中的动态refcursor结果集" 问题
- 如何在TableAdapter中使用Data Access Application Block的疑问??
- Data Access Application Block 3.1
- Enterprise Library 2.0 -- Data Access Application Block
- MS的SQLHelper中如何得到存储过程的输出参数值
- Data Access Application Block V1.1
- 使用企业库调用存储过程,并接受return 的返回值
- 【MSDN文摘】Data Access Application Block for .NET
- TransactionScope和Enterprise Libray 3.0 Data Access Application Block
- Enterprise library Data Access Application Block试用手记
- 如何解决 "Access to the path *** is denied"
- Data Access Application Block