从存储过程返回值 [英] Return Value from a Stored Procedure

查看:144
本文介绍了从存储过程返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从我的存储过程返回的数据。这是什么我都试过,绝对没有什么回来



存储过程:

 声明@Submit_ID为int 
(从Sub_Details选择(MAX(Sub_ID)+ 1))设置@Submit_ID =;
INSERT INTO ..​​...
返回@Submit_ID



C#(2.0 )

  SqlConnection的康恩= NULL; 
INT子ID;

{
康恩=新的SqlConnection(conn_string);
的SqlCommand CMD =新的SqlCommand(INSERT_INTO_MYDB,康恩);
cmd.CommandType = CommandType.StoredProcedure;

的SqlParameter P1 =新的SqlParameter(@名字,SqlDbType.NVarChar,255);
p1.Direction = ParameterDirection.Input;
p1.Value = txtFirstName.Text;
cmd.Parameters.Add(P1);

的SqlParameter P2 =新的SqlParameter(@姓,SqlDbType.NVarChar,255);
p2.Direction = ParameterDirection.Input;
p2.Value = txtLastName.Text;
cmd.Parameters.Add(P2);

的SqlParameter PSUB =新的SqlParameter(@ Sub_ID,SqlDbType.Int);
pSub.Direction = ParameterDirection.ReturnValue;

conn.Open();
cmd.ExecuteNonQuery();

子ID = Convert.ToInt32(PSUB);
}


解决方案

首先添加参数 CMD ,并使用 .value的它的值

  cmd.Parameters.Add(PSUB); //参数添加到命令
cmd.ExecuteNonQuery();
子ID = Convert.ToInt32(pSub.Value); //使用.value的


I am trying to get data returned from my stored procedure. This is what I have tried and absolutely nothing is coming back.

Stored Proc:

Declare @Submit_ID as int
Set @Submit_ID = (Select (Max(Sub_ID) + 1) from Sub_Details);
INSERT INTO.....
Return @Submit_ID

C# (2.0)

SqlConnection conn = null;
int subid;
try
{
    conn = new SqlConnection(conn_string);
    SqlCommand cmd = new SqlCommand("INSERT_INTO_MYDB", conn);
    cmd.CommandType = CommandType.StoredProcedure;

    SqlParameter p1 = new SqlParameter("@FirstName", SqlDbType.NVarChar, 255);
    p1.Direction = ParameterDirection.Input;
    p1.Value = txtFirstName.Text;
    cmd.Parameters.Add(p1);

    SqlParameter p2 = new SqlParameter("@LastName", SqlDbType.NVarChar, 255);
    p2.Direction = ParameterDirection.Input;
    p2.Value = txtLastName.Text;
    cmd.Parameters.Add(p2);

    SqlParameter pSub = new SqlParameter("@Sub_ID", SqlDbType.Int);
    pSub.Direction = ParameterDirection.ReturnValue;

    conn.Open();
    cmd.ExecuteNonQuery();

    subid = Convert.ToInt32(pSub);
}

解决方案

First add parameter to cmd and use .Value to its value

 cmd.Parameters.Add(pSub);    // add parameters to command
 cmd.ExecuteNonQuery();
 subid = Convert.ToInt32(pSub.Value); // Use .Value

这篇关于从存储过程返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆