Jestem nowy w pisaniu procedury składowanej. Napisałem więc jeden z parametrami wyjściowymi i chcę uzyskać dostęp do wartości wyjściowej, na gorąco, aby to zrobić.Sposób korzystania z parametru OUTPUT w procedurze zapisanej
Moje procedury przechowywanej:
ALTER PROCEDURE selQuery
(
@id int, @code varchar(50) OUTPUT
)
AS
SELECT RecItemCode = @code, RecUsername from Receipt where RecTransaction = @id
RETURN @code
Jeśli próbuje ustawić „@ code = RecItemCode” Uzyskiwanie błąd jako: „SELECT, które przypisuje wartość do zmiennej nie może być łączona z operacji pobierania danych”
I używam procedura przechowywana jako:
con.Open();
cmd.Parameters.AddWithValue("@id", textBox1.Text);
SqlParameter code = new SqlParameter("@code", SqlDbType.Int);
code.Direction = ParameterDirection.Output;
cmd.Parameters.Add(code);
SqlDataReader sdr = cmd.ExecuteReader();
MessageBox.Show(cmd.Parameters["@code"].Value.ToString()); // getting error
con.Close();
błąd: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.” Chcę uzyskać wartość parametru wyjściowego. Jak to zdobyć?
Dzięki.
dzięki anthony, bardzo pomogło .... wielkie dzięki – Sandy
Dziękuję i +1. 'object obj = cmd.ExecuteScalar();' działało idealnie. Udało mi się osiągnąć to, czego potrzebowałem w dwóch liniach kodu C#, drugi to "myString = obj.ToString();". – FumblesWithCode