所以我存储的值是我已经完成的学生参考号,而不是我需要在textbox2和textbox 3中返回我的ID和我的DateTime中的值。同时输入并执行该过程。
using (SqlConnection con = new *****))
{
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "Exams_BagCheck_ScanIn";
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@StudentReference", SqlDbType.VarChar).Value = textBox1.Text;
cmd.Parameters.AddWithValue("@ID", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
con.Open();
cmd.ExecuteNonQuery();
程序
USE [IFCustom]
GO
DECLARE @return_value Int
EXEC @return_value = [dbo].[Exams_BagCheck_ScanIn]
@StudentReference = N'1'
SELECT @return_value as 'Return Value'
GO
答案 0 :(得分:3)
您的程序什么都不返回,您需要删除:
SELECT @return_value as 'Return Value'
而是:
RETURN @return_value
(如果您想select
,则.ExecuteScalar()
会返回值
答案 1 :(得分:1)
如果您只返回一个值,则可以使用
这样:
string some_value = cmd.ExecuteScalar().ToString(); // if it is string
OR
Object some_value = cmd.ExecuteScalar(); // convert it to its repective type.
取代
cmd.ExecuteNonQuery();
// some_value
将包含您在过程中选择为SELECT @return_value
的值。