2009-01-26 3 views
0

ma procédure stockée Supposons est:Comment renvoyer plusieurs enregistrements de plusieurs tables par une seule procédure stockée ayant des paramètres?

IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_QB_descriptionwise_select') 
    BEGIN 
     DROP Procedure sp_QB_descriptionwise_select 
    END 
GO 
CREATE Procedure sp_QB_descriptionwise_select 
    (
     @description nvarchar(max) 
    ) 
AS 

declare @type int 
SELECT  Question.questionid, Question.question, Question.answer, Question.typeOfQuestion, QuestionBank.description 
FROM   QuestionBank INNER JOIN 
         Question ON QuestionBank.questionid = Question.questionid 
WHERE  (QuestionBank.description = @description) 

SELECT  @type = Question.typeOfQuestion 
FROM   QuestionBank INNER JOIN 
         Question ON QuestionBank.questionid = Question.questionid 
WHERE  (QuestionBank.description = @description) 

if @type=1 
begin 
SELECT  OptionQuestion.option1, OptionQuestion.option2, OptionQuestion.option3, OptionQuestion.option4 
FROM   OptionQuestion INNER JOIN 
         Question ON OptionQuestion.questionid = Question.questionid 
end 
GO 

Comment puis-je stocker les enregistrements n en quoi ???

+0

Pouvez-vous clarifier s'il vous plaît? Que voulez-vous stocker? Stocker dans le sens de dans une variable (s) ou dans un tableau? Voulez-vous renvoyer plusieurs ensembles de résultats ou rejoindre plusieurs ensembles de résultats, puis les renvoyer. Il serait utile que vous décriviez votre objectif plus clairement. – cmsjr

Répondre

3

En utilisant IDataReader/ExecuteReader, vous devriez pouvoir utiliser:

using (IDataReader reader = cmd.ExecuteReader()) 
    { 
     do 
     { 
      while (reader.Read()) 
      { 
       /* row */ 
      } 
     } while (reader.NextResult()); /* grid */ 
    } 
+0

hey thanx homme !! cela a fonctionné pour moi !!! merci beaucoup !! –

0

Appelez votre procédure stockée avec la méthode DataSetAdapter.Fill(). Il va peupler votre ensemble de données avec toutes les tables résultantes. Si vous utilisez un jeu de données typé, assurez-vous de configurer les mappages de table (remplissez la collection DataSetAdapter.TableMappings). Détails à trouver sur MSDN

+0

DataSetCommand.selectCommand accepte le paramètre en tant que sqlcommand.commandText, sqlConnction comment passer les paramètres dans ce cas ??? –

0

DataSetCommand.selectCommand accepte le paramètre comme sqlcommand.commandText, sqlConnction comment passer les paramètres dans ce cas ???