選択したストアドプロシージャからの戻り値、つまり返されたレコードの数をどのように取得しますか。
私が求めている値はRETURN(SELECT COUNT(*)FROM #Eligible_Ids);です。
私がそうすることができた唯一の方法は次のとおりです:
DECLARE @NumberOfResults INT
SET @NumberOfResults =(SELECT COUNT(*)FROM #Eligible_Ids)
次に、selectステートメントでNumberResults = @NumberOfResultsがありますが、これにより、再調整されたデータに余分な行が追加されます。
クラスの私のコードは
using (SqlCommand cmd = new SqlCommand(spName, cn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@strSearchPhrase", SqlDbType.VarChar, 100));
cmd.Parameters.Add(new SqlParameter("@SearchMode", SqlDbType.Int, 4));
cmd.Parameters.Add(new SqlParameter("@intPageNumber", SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@intRecordsPerPage", SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@intTotalRecordsReturned", SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.Int));
cmd.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue;
cmd.Parameters["@strSearchPhrase"].Value = q;
cmd.Parameters["@SearchMode"].Value = 1;
cmd.Parameters["@intPageNumber"].Value = pagenumber;
cmd.Parameters["@intRecordsPerPage"].Value = 10;
cmd.Parameters["@intTotalRecordsReturned"].Value = 10;
cn.Open();
using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.Default))
{
if (rdr.HasRows)
{
while (rdr.Read())
{
Data.Add(new DisplaySearchResults
{
Title = (string)rdr["PageTitle"],
Description = (string)rdr["PageParagraph"],
URL = (string)rdr["PageURL"],
returnvalue = (int)rdr["NumberResults"]
});
}
}
return Data;
これを正しい方法で行うための助けをいただければ幸いです
ジョージ