Comment obtenir une Chaîne SQL Résultat de la Procédure Stockée et l'enregistrer dans l'Application Windows en C# variable de chaîne

J'ai de la Procédure Stockée suivante :

ALTER PROCEDURE [dbo].[ProcedureName] 

    @date NVARCHAR(50)

AS

BEGIN

    SET NOCOUNT ON;

    DECLARE @result nvarchar(500) -- this one should return string.

    DECLARE @variable1 NVARCHAR(50)
    set @variable1 = (SELECT COUNT(*) FROM dbo.Table1 WHERE column1 not in (select column1 from dbo.Table2))

    DECLARE @variable2 NVARCHAR(50)
    update dbo.Table1 set columnX = 1 where column1 not in (select column1 from  dbo.Table2)

    set @variable2 = @@ROWCOUNT

et ainsi de suite... ça continue comme ça les 200 lignes de script avec au moins 10-12 variables

après que je veux obtenir un résultat de ce genre,

'Hello,' + 

'Some Text here' + 

@date +': ' + 

'Explaining text for variable1- ' + @variable1 + 

'Updated rows from variable2 - ' + @variable2 + 

'some other select count - ' + @variable3 +

'some other update rowcount - '+ @variable4

......

jusqu'à maintenant, j'ai pu obtenir avec Instruction d'IMPRESSION, mais ne peut pas le prendre pour variable dans mon code C# qui va comme ceci:

public void Execute_Click(object sender, EventArgs e)
{
    if (MessageBox.Show("Are you sure you want to execute the program?", "Confirm Start", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.No)
    {
        string connectionString = GetConnectionString(usernamePicker.Text, passwordPicker.Text);
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand("dbo.ProcedureName", connection))
            {
                connection.Open();
                cmd.CommandText = "dbo.ProcedureName";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@date", SqlDbType.VarChar).Value = dateTimePicker1.Text;

                SqlParameter result = cmd.Parameters.Add("@result", SqlDbType.VarChar);
                result.Direction = ParameterDirection.ReturnValue;

                cmd.ExecuteScalar();
                var resultout = (string)cmd.Parameters["@result"].Value;
                connection.Close();
                TextMessage.Text = dateTimePicker1.Text;
            }
        }
    }
}

tout ce que j'obtiens le résultat est 0 ou NULL ou etc.
j'ai essayé de valeur de retour à partir de SQL avec IMPRESSION, de RENDEMENT, de l'ENSEMBLE de SORTIE ....... mais rien ne semble fonctionner. Cependant l'extraction de variable à partir de C# SQL semble être de l'enfant. Des idées?

Êtes-vous sélectionner à la fin de votre procédure pour renvoyer la valeur?
Vous pouvez utiliser la variable de Sortie pour affecter les valeurs de plusieurs variables
Jetez un oeil sur Entrée/Sortie, paramètres et Valeur de Retour Avez-vous retourner quelque chose à placer dans le @result paramètre?
je suis l'attribution finale de la chaîne de caractères "Bonjour" + ....... pour un résultat variable, mais je ne sais pas comment sortie comme une sorte de message de la procédure

OriginalL'auteur user2384855 | 2013-05-15