今天有位朋友問我如何在Data Access Application Block中得到存儲的過程的返回值,我才發現自己以前寫的文章中確實沒提到這方面的問題,現在來補充一下,具體的解決方法如下:
1、首先建立一個具有返回值的存儲過程,作為示例,我就簡單的建一個存儲過程,如下:
create proc test
(
@id int
)
as
declare @flag int
select * from person where id=@id
if @@rowcount > 0
set @flag=1
else
set @flag=0
return @flag
我們要在程序中獲得這個返回值的方法如下:
[TestMethod]
public void TestReturnValue()
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetStoredProcCommand("test");
db.AddInParameter(dbcomm, "@id", DbType.Int32,1);
//關鍵在這裡,添加一個參數,類型為ReturnValue
db.AddParameter(dbcomm, "@RETURN_VALUE", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null);
db.ExecuteNonQuery(dbcomm);
int testvalue = (int)dbcomm.Parameters["@RETURN_VALUE"].Value;
Assert.AreEqual(testvalue, 1);
}
通過上面的代碼我們就能夠在程序中獲得存儲過程的返回值了。
以前寫的文章可能還有很多地方沒說到,希望能有更多的朋友提意見,謝謝!