取存储过程输出参数值的问题(着急啊!!!!)
存储过程为:
ALTER PROCEDURE acticle_add
(
@title varchar(50),
@content varchar(500),
@PostId bigint output
)
AS
SET NOCOUNT ON
insert into acticle_msup(title,content) values(@title,@content)
select @PostId=@@IDENTITY
SET NOCOUNT OFF
RETURN
========================
方法为:
public void acticle_add(string title, string content,out int postid)
{
SqlParameter[] param = new SqlParameter[3];
param[0] = new SqlParameter( "@title ",SqlDbType.VarChar,50);
param[0].Value = title;
param[1] = new SqlParameter( "@content ",SqlDbType.VarChar,500);
param[1].Value = content;
param[2] = new SqlParameter( "@PostId ",SqlDbType.BigInt,8);
param[2].Direction = ParameterDirection.Output;
Helper.SqlHelper.ExecuteNonQuery(ConnString, "acticle_add ",param);
postid = Convert.ToInt32(param[2].Value);
}
====================
调用:
protected void acticle_add()
{
DAL.method method = new method();
int postid;
method.acticle_add(TextBox1.Text.ToString(),TextBox2.Text.ToString(),out postid);
Response.Write(postid);
这是我的程序,我的存储过程在查询分析器里运行是正确的,能返回标志列的ID,但是我在调用的时候,返回值都是0啊,我调试跟踪的时候 postid为 null ,请帮忙解答一下,谢谢了
------解决方案--------------------select @PostId=@@IDENTITY
->
set @PostId = @@IDENTITY
------解决方案--------------------set @PostId=@@IDENTITY
------解决方案--------------------首先 建议最好不要用@@IDENTITY 感觉SCOPE_IDENTITY( 'youTableName ')是最保险的
//////////////////////////////////////////////////////////////////////////////
LZ为什么不select @@IDENTITY
或者直接 select IDENT_CURRENT( 'acticle_msup ')
还要那个output参数干嘛
------解决方案--------------------