【发布时间】:2014-03-16 18:21:17
【问题描述】:
我试图从存储过程中获取返回值,但它总是返回 0。
c#代码
cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "AbsentEntry";
cmd.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = ViewState["empID"].ToString();
cmd.Parameters.Add("@AttendanceDate", SqlDbType.Date).Value = date.ToString("yyyy-MM-dd");
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
SqlParameter returnParameter = cmd.Parameters.Add("@returnval", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
int result = (int)cmd.Parameters["@returnval"].Value;
return result;
SP
ALTER PROCEDURE [dbo].[AbsentEntry]
@EmpID varchar(10),
@AttendanceDate Date
AS BEGIN
declare @returnval int
IF (SELECT COUNT(*) FROM tblEmpAttendance WHERE EmpID = @EmpID AND AttendanceDate=@AttendanceDate) = 0
BEGIN
insert into tblEmpAttendance (EmpID, AttendanceDate, IsInOut, SessionCount, IsPresent) values ( @EmpID,@AttendanceDate,'OUT',0,'A')
set @returnval=1
return @returnval
END
ELSE
BEGIN
set @returnval=0
return @returnval
END
END
在所有情况下,它都返回 0 。我无法弄清楚问题所在。
【问题讨论】:
标签: c# sql sql-server stored-procedures