我在程序中要调用一个带output参数的存储过程,根据返回的output参数值来判断存储过程里的sql是否都正确的执行。那么在程序中该怎么写调用这种存储过程,还有就是怎样得到返回的output参数值。
CREATE PROCEDURE InsertNewsCont
@NewsTitle nvarchar(50),
@NewsContent ntext,
@NewsFrom nvarchar(50),
@ReaSon nvarchar(50) output
AS
select * from NewsTB where NewsTitle= @NewsTitle
if @@rowcount<1
begin
insert into NewsTB(NewsTitle,NewsContent,NewsFrom) Values(@NewsTitle,@NewsContent,@NewsFrom)
end
else
begin
set @ReaSon='对不起,有重复标题!'
end
GO
CREATE PROCEDURE InsertNewsCont
@NewsTitle nvarchar(50),
@NewsContent ntext,
@NewsFrom nvarchar(50),
@ReaSon nvarchar(50) output
AS
select * from NewsTB where NewsTitle= @NewsTitle
if @@rowcount<1
begin
insert into NewsTB(NewsTitle,NewsContent,NewsFrom) Values(@NewsTitle,@NewsContent,@NewsFrom)
end
else
begin
set @ReaSon='对不起,有重复标题!'
end
GO
myParameter.ParameterName = "@NewsTitle";
myParameter.Direction = ParameterDirection.Input;
myParameter.SqlDbType = SqlDbType.NVarChar;myParameter.ParameterName = "@NewsContent";
myParameter.Direction = ParameterDirection.Input;
myParameter.SqlDbType = SqlDbType.NText;
myParameter.ParameterName = "@NewsFrom";
myParameter.Direction = ParameterDirection.Input;
myParameter.SqlDbType = SqlDbType.NVarChar;myParameter.ParameterName = "@ReaSon";
myParameter.Direction = ParameterDirection.Output;
myParameter.SqlDbType = SqlDbType.NVarChar;command.Parameters.Add(myParameter);
command.Connection=conn;
command.CommandText=spname;
command.CommandType= CommandType.StoredProcedure;command.ExecuteNonQuery();
foreach(SqlParameter parameter in command.Parameters)
{
if(parameter.Direction == ParameterDirection.Output)
{
Console.Write(parameter.ParameterName+":"+ parameter.Value.ToString());
}
}