今天看到一个存储过程设置输出参数,并使用C#进行调用的方法,其好处是比较方便设置返回值
存储过程如:
create proc proc_AAA_insert
@ID varchar(10)=null,
@proc_info varchar(20) output
as
begin
select @ID=Max(ID) from tb_AAA
if exists(select name from tb_AAA where id=@ID)
set @proc_info='isHave'
else
set @proc_info='ok'
end
GO
c#方法
public string insert_table(clsAAA cf)
{
try
{
con.ConDatabase();
SqlCommand cmd = new SqlCommand("proc_AAA_insert", con.conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection.Open();
SqlParameter[] prams =
{
new SqlParameter("@ID", SqlDbType.Int),
new SqlParameter("@proc_info", SqlDbType.VarChar, 20, ParameterDirection.Output,true, 0, 0,
string.Empty,DataRowVersion.Default, null)
};
prams[0].Value = cf.id;
// 添加参数
foreach (SqlParameter parameter in prams)
{
cmd.Parameters.Add(parameter);
}
cmd.ExecuteNonQuery();
string strResult = cmd.Parameters["@proc_info"].Value.ToString();
con.closeCon();
return strResult;
}
catch (Exception ey)
{
con.closeCon();
return ey.Message.ToString();
}
}