Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Getting value of OUTPUT param in .net
Message
De
25/05/2012 08:58:25
 
 
À
25/05/2012 08:50:39
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Versions des environnements
Environment:
C# 2.0
Divers
Thread ID:
01544303
Message ID:
01544393
Vues:
25
>>>>>>Hi,
>>>>>>
>>>>>>I need to get the value of OUTPUT parameter passed to a SQL Server stored procedure from a C# method. The pseudo code is as following:
>>>>>>
>>>>>>
>>>>>>// create array of parameters to pass to the stored proced
>>>>>>string[,] Parameters = new string[,] { { "@Param1", cVal1, "" }, { "@Param2", cVal2, "" }, 
>>>>>>{ "@Param3", cVal3, "" } };
>>>>>>
>>>>>>// call stored procedure:
>>>>>>MyDataAccessClass.ExecuteStoredProcedure("MyStoredProcedure", Parameters);
>>>>>>
>>>>>>
>>>>>>
>>>>>>Note that the stored procedure will have OUTPUT set to parameter @Param3.
>>>>>>
>>>>>>My question is, after I execute the procedure above, will the variable @Param3 have the value the procedure will set to? That is, can I, after the procedure do the following:
>>>>>>
>>>>>>
>>>>>>IF (@Param3 = 'SomeString)
>>>>>>{
>>>>>>    // code
>>>>>>}
>>>>>>
>>>>>>
>>>>>>My concern (question) is, can I (or should I) refer to the variable as @Param3 in the C# method?
>>>>>
>>>>>What's in MyDataAccessClass.ExecuteStoredProcedure() ?
>>>>>.
>>>>
>>>>This is a class that parses parameters (Parameters) and calls a stored procedure (either VFP or SQL Server, depending on the global setting). However, when I created this class I didn't account for the fact that I may need to get some values from OUTPUT parameter. So I will have to modify/refactor this class. Meanwhile, I found that I don't really need the OUTPUT since I will be "dealing" with error via RAISERROR in SQL Server.
>>>
>>>OK. Just couldn't see what relationship the string arrays had to actual Parameters - and without knowing that there's no way to answer your question :-}
>>
>>The string array has the following "break-down". 1st element is the name of the parameter passed to the SQL Server stored procedure. 2nd element is the value. 3rd element is (I know it is kludge <g>) is empty string if the value is a string or 'INT" if the value is an integer. So the method ExectueStoredProcedure() parses this array and builds the Parameter collection to be passed to the SP.
>
>Given your previous post I guess you no longer need it but, in pseudo-code:
SqlCommand command = new SqlCommand();
>            //Congfigure command
>            SqlParameter param = new SqlParameter(Parameters[2, 0], Parameters[2, 1]);
>            param.Direction = ParameterDirection.InputOutput;
>            //etc
>            command.Parameters.Add(param);
>            //Add other params , execute....
>            var v =  command.Parameters["@Param3"].Value;
I actually do need it since I need to modify my class to work with OUTPUT parameter. So your code is helpful. Thank you very much.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform