我有一個SQL Server Stored Procedure
。這個過程有一個輸出參數。 在我的C#.NET
應用程序中,我通過SqlHelper.ExecuteDataSet()
執行此過程,並返回查詢結果DataSet
。 如何在使用SqlHelper.ExecuteDataSet()
時從存儲過程過程中獲取輸出參數。 一些文章說我需要使用SqlHelper.ExecuteNonQuery()
,但我也需要DataSet
。使用SqlHelper.ExecuteDataSet()執行SQL Server存儲過程並獲取返回值
這是我的代碼:
public DataSet GetDataPerTable(string spName, string a, string b, out int c)
{
try
{
c = 0;
SqlParameter[] spParameter = new SqlParameter[3];
spParameter[0] = new SqlParameter("@a", SqlDbType.Char, 4);
spParameter[0].Direction = ParameterDirection.Input;
spParameter[0].Value = a;
spParameter[1] = new SqlParameter("@b", SqlDbType.Char, 1);
spParameter[1].Direction = ParameterDirection.Input;
spParameter[1].Value = b;
spParameter[2] = new SqlParameter("@c", SqlDbType.Int);
spParameter[2].Direction = ParameterDirection.ReturnValue;
c = Convert.ToInt32(spParameter[2].Value);
return SqlHelper.ExecuteDataset(Configuration.MyConnectionString, CommandType.StoredProcedure, spName, spParameter);
}
catch (Exception ex)
{
throw ex;
}
}
我c
變量總是返回0。任何想法?感謝提前:)
我的程序是關於這樣的:
CREATE PROCEDURE [dbo].SPR_MyProcedure (@a Char(4), @bChar(1), @c Int Output)
SELECT *
FROM MyTable
Set @c = 1
我已經把我的存儲過程腳本e :) –
@WillyLazuardi是的 - 這絕對是一個輸出,而不是一個返回值。 – podiluska
謝謝@podiluska,它現在的作品...:--bd –