Получение нулевого значения при выполнении хранимой процедуры SQL Server в C # - PullRequest
0 голосов
/ 06 ноября 2019

Я выполняю хранимую процедуру SQL Server в C #, но оба моих выходных параметра возвращаются пустыми. Но когда я запускаю эту хранимую процедуру непосредственно в SSMS, я получаю значения для обоих параметров. Я использовал тот же порядок ввода №.

Может кто-нибудь сказать мне, что не так в моем коде? Спасибо

using (SqlConnection con = new SqlConnection(CS))
{
    SqlCommand cmd = new SqlCommand("wt_find_open_pick_ticket_count", con);
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@input_order_no", order_no);
    cmd.Parameters.Add("@status", SqlDbType.Int).Direction = ParameterDirection.Output;
    cmd.Parameters.Add("@results", SqlDbType.VarChar, 1000).Direction = ParameterDirection.Output;

    con.Open();
    cmd.ExecuteNonQuery();

    MessageBox.Show(cmd.Parameters["@status"].Value.ToString());
    MessageBox.Show(cmd.Parameters["@results"].Value.ToString());
}

ALTER procedure wt_find_open_pick_ticket_count
@input_order_no varchar(20),
@results varchar(1000) OUTPUT,
@status int OUTPUT

AS

SELECT
status = 
CASE
    WHEN COUNT(oe_pick_ticket.pick_ticket_no)>0 THEN 0
    ELSE 1
    END,
results = 

CASE
    WHEN COUNT(oe_pick_ticket.pick_ticket_no)> 0 THEN 'Message'
    ELSE ''
    END

    FROM oe_pick_ticket with (nolock)

    WHERE
    oe_pick_ticket.order_no = @input_order_no
    AND oe_pick_ticket.invoice_no IS NULL 
    AND oe_pick_ticket.delete_flag = 'N'
    AND oe_pick_ticket.print_date > '2014-01-01'


    GROUP BY oe_pick_ticket.order_no 

1 Ответ

0 голосов
/ 07 ноября 2019

Эта хранимая процедура возвращает набор результатов. Не возвращает выходные параметры. Чтобы вернуть выходные параметры, SP должен измениться на что-то вроде:

select
    @paramout1 = val1,
    @paramout2 = val2

Обратите внимание на "@", который предшествует именам параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...