存储过程:
CREATE PROCEDURE p_getdepartcode @parent_code varchar(10),@depart_code_out varchar(10) output AS
begin
declare @departcode varchar(10)
set @departcode = (select MAX(depart_code) from bas_depart where len(depart_code)-2=len(@parent_code) and
left(depart_code,len(parent_code)) = @parent_code )
if @departcode is null
set @departcode = @parent_code + '01'
else
set @departcode = str(@departcode + 1)
set @depart_code_out = @departcode
return @depart_code_out
end
GO
C#,ASP.NET中:
try
{
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["connstring"]);
SqlCommand cmd = new SqlCommand("p_getdepartcode",conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] Parameters = new SqlParameter[2];
Parameters[0] = new SqlParameter("@parent_code",Request.QueryString["departcode"]);
Parameters[1] = new SqlParameter("@depart_code_out",SqlDbType.VarChar,10);
Parameters[1].Direction = ParameterDirection.Output;
cmd.Parameters.Add(Parameters);
cmd.ExecuteNonQuery();
depart_code.Text = Parameters[1].Value.ToString();
}
catch
{
Response.Write("执行存储过程错误,请确认您输入的参数!");
}
CREATE function p_getdepartcode @parent_code varchar(10)
RETURNS VARCHAR(10)
begin
declare @departcode varchar(10)
set @departcode = (select MAX(depart_code) from bas_depart where len(depart_code)- 2=len(@parent_code) and
left(depart_code,len(parent_code)) = @parent_code )
if @departcode is null
set @departcode = @parent_code + '01'
else
set @departcode = str(@departcode + 1)
RETURN @departcode
end
CREATE PROCEDURE p_getdepartcode @parent_code varchar(10 AS
begin
declare @departcode varchar(10)
set @departcode = (select MAX(depart_code) from bas_depart where len(depart_code)-2=len(@parent_code) and
left(depart_code,len(parent_code)) = @parent_code )
if @departcode is null
set @departcode = @parent_code + '01'
else
set @departcode = str(@departcode + 1)
select @departcode
end
GO