我在程序中要调用一个带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

解决方案 »

  1.   

    myParameter = new SqlParameter();
    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());
    }
    }