return (int)cmd.Parameters["ReturnValue"].Value的返回值是什么
插入成功应该是多少? 失败应该是多少
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到执行成功返回值
return (int)cmd.Parameters["ReturnValue"].Value;
}
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// 确认打开连接
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.Text; //执行SQL类型:命令文本 // 依次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null)); return cmd;
}
插入成功应该是多少? 失败应该是多少
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到执行成功返回值
return (int)cmd.Parameters["ReturnValue"].Value;
}
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// 确认打开连接
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.Text; //执行SQL类型:命令文本 // 依次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null)); return cmd;
}
如果执行成功,就应该返回存储过程中定义的返回值,所以你要分析调用时传给存储过程的参数,已经根据该参数存储过程执行后的返回值。看.net程序肯定无法知道的
ReturnValue 此参数表示存储过程的返回值。SQL Server 的存储过程参数列表中不显示该参数。它只与存储过程的 RETURN 语句中的值相关联。
ParameterDirection.ReturnValue
我断点调试 他返回的是0 可是数据库操作是成功的我要是跟他这个返回值来判断 数据库插入是否成功该怎么判断
1、不指定返回参数create PROCEDURE procedureName
AS
set nocount on --不返回受影响的行数--插入一条消息记录
INSERT INTO tablename(fields)
VALUES(values)RETURN 1 如果插入成功,这时返回1,.net中这样读取:SqlParameter return_values = cmd.Parameters.Add("rvl", SqlDbType.Int);
return_values.Direction = ParameterDirection.ReturnValue;
//执行语句
……
int returnValue = (int)return_values.Value;
2、指定返回参数create PROCEDURE procedureName
@ReturnValue out int
AS
set nocount on --不返回受影响的行数--插入一条消息记录
INSERT INTO tablename(fields)
VALUES(values)@ReturnValue = 1;
RETURN @ReturnValue如果插入成功,这时返回1,.net中这样读取:SqlParameter param=new SqlParameter("ReturnValue", SqlDbType.Int, 4,ParameterDirection.Output);
//执行语句
……
cmd.Parameters["ReturnValue"].Value;
能解释下 这两个值是什么意思吗 参数代表什么?
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));