Sql Server 中的output returnvalue的区别
2007-11-30 18:59
489 查看
1:ReturnValue只能返回0,1,-1这样的数据,局限性很大 ,而在存储过程中用OutPut参数,可以返回各种类型的数据,比较灵活方便。
ReturnValue 是用来返回错误码的,output是指存储过程传出参数 例如 :
@Flag varchar(20) output
sql存储过程:
create proc Test
@B varchar(50) output,
@C varchar(50)
as
begin
declare @A int
set @B=@C+'Return'
set @A=1000
return @A
end
c#程序代码:
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=(local);uid=sa;pwd=sa;database=ServerUForVhost1");
System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand("Test", conn);
comm.CommandType = System.Data.CommandType.StoredProcedure;
//调用sqlhelper时这样写,单独不行:comm.Parameters.Add(不能addsqlparameter[])
//SqlParameter[] parameter ={
// new System.Data.SqlClient.SqlParameter("@A",System.Data.SqlDbType.Int,4),
// new System.Data.SqlClient.SqlParameter("@B",System.Data.SqlDbType.VarChar,50),
// new System.Data.SqlClient.SqlParameter("@C",System.Data.SqlDbType.VarChar,50)
// };
//parameter[2].Direction = ParameterDirection.Input;
// parameter[0].Direction = ParameterDirection.ReturnValue;
// parameter[1].Direction = ParameterDirection.Output;
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@A", System.Data.SqlDbType.Int, 4));
comm.Parameters["@A"].Direction = ParameterDirection.ReturnValue;
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@B", System.Data.SqlDbType.VarChar, 50));
comm.Parameters["@B"].Direction = ParameterDirection.Output;
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@C", System.Data.SqlDbType.VarChar, 50));
comm.Parameters["@C"].Value = "insertmsg";
conn.Open();
int i = comm.ExecuteNonQuery();
string result1 = comm.Parameters["@A"].Value.ToString();
string result2 = comm.Parameters["@B"].Value.ToString();
conn.Close();
结果为: result1=1000;result2=insertmsgResult
ReturnValue 是用来返回错误码的,output是指存储过程传出参数 例如 :
@Flag varchar(20) output
sql存储过程:
create proc Test
@B varchar(50) output,
@C varchar(50)
as
begin
declare @A int
set @B=@C+'Return'
set @A=1000
return @A
end
c#程序代码:
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=(local);uid=sa;pwd=sa;database=ServerUForVhost1");
System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand("Test", conn);
comm.CommandType = System.Data.CommandType.StoredProcedure;
//调用sqlhelper时这样写,单独不行:comm.Parameters.Add(不能addsqlparameter[])
//SqlParameter[] parameter ={
// new System.Data.SqlClient.SqlParameter("@A",System.Data.SqlDbType.Int,4),
// new System.Data.SqlClient.SqlParameter("@B",System.Data.SqlDbType.VarChar,50),
// new System.Data.SqlClient.SqlParameter("@C",System.Data.SqlDbType.VarChar,50)
// };
//parameter[2].Direction = ParameterDirection.Input;
// parameter[0].Direction = ParameterDirection.ReturnValue;
// parameter[1].Direction = ParameterDirection.Output;
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@A", System.Data.SqlDbType.Int, 4));
comm.Parameters["@A"].Direction = ParameterDirection.ReturnValue;
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@B", System.Data.SqlDbType.VarChar, 50));
comm.Parameters["@B"].Direction = ParameterDirection.Output;
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@C", System.Data.SqlDbType.VarChar, 50));
comm.Parameters["@C"].Value = "insertmsg";
conn.Open();
int i = comm.ExecuteNonQuery();
string result1 = comm.Parameters["@A"].Value.ToString();
string result2 = comm.Parameters["@B"].Value.ToString();
conn.Close();
结果为: result1=1000;result2=insertmsgResult
相关文章推荐
- Sql Server 中的output returnvalue的区别
- Sql Server 中的output returnvalue的区别
- ParameterDirection.ReturnValue 和ParameterDirection.OutPut的区别?
- C++编译优化之RVO(Return Value Optimization) &&C++直接初始化与赋值初始化的区别
- html、text、val、attr、prop区别。this.value和$(this).val()区别以及return用法
- event.returnValue和return false的区别
- output和return的区别
- 关于C#中{get;set;}与{get:return;set:value}的区别
- event.returnValue和return false的区别
- SQL SERVER存储过程执行返回Return Value=0,未输出预期结果
- 存储过程的output及return的区别
- 存储过程的output及return的区别
- event.returnValue和return false的区别
- event.returnValue和return false的区别
- store procudure's output parameter & return value
- 存储过程中的output跟return区别及实例说明
- redirect:2>&1使用&redirect and output and return value are different
- event.returnValue和return false的区别
- gpio_direction_output 和 gpio_set_value用法的区别
- ADO.net取存储过程的返回值以及存储过程中Return和OUTPUT的区别