我在数据库中的存储过程如下(此存储过程根据文章ID提取文章的正文字段):
CREATE PROCEDURE Article_Display
@id bigint,
@content text output
AS
select content from article where article_id=@id
GO网站后台程序(c#):
string connStr=System.Configuration.ConfigurationSettings.AppSettings["connStr"];//连接数据库语句
SqlConnection conn=new SqlConnection(connStr);
SqlCommand cmd=new SqlCommand("Article_Display",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@id",SqlDbType.BigInt,8);
cmd.Parameters.Add("@content",SqlDbType.Text);           
cmd.Parameters["@content"].Direction=ParameterDirection.Output;
cmd.Parameters["@id"].Value=Request.Params["id"];
conn.Open();
cmd.ExecuteNonQuery();
Label1.Text=cmd.Parameters["@content"].Value.ToString();
conn.Close();出现错误如下:参数 1: String 类型的“@content”,Size 属性具有无效大小值: 0 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 参数 1: String 类型的“@content”,Size 属性具有无效大小值: 0源错误: 
行 32:  cmd.Parameters["@id"].Value=Request.Params["id"];
行 33:  conn.Open();
<font color=red>行 34:  cmd.ExecuteNonQuery();</font>
行 35:  Label1.Text=cmd.Parameters["@content"].Value.ToString();
行 36:  conn.Close();我把“cmd.Parameters.Add("@content",SqlDbType.Text); ”改成“cmd.Parameters.Add("@content",SqlDbType.Text,16); ”结果出现如下错误:当前命令发生了严重错误。应放弃任何可能产生的结果。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 当前命令发生了严重错误。应放弃任何可能产生的结果。源错误: 
行 32:  cmd.Parameters["@id"].Value=Request.Params["id"];
行 33:  conn.Open();
<font color=red>行 34:  cmd.ExecuteNonQuery();</font>
行 35:  Label1.Text=cmd.Parameters["@content"].Value.ToString();
行 36:  conn.Close();写得虽然繁琐,但是我把问题说得很清楚,希望各位高人能够赐教一二,不胜感激!

解决方案 »

  1.   

    CREATE PROCEDURE Article_Display
    @id bigint
    AS
    select content from article where article_id=@id
    GOcmd.Parameters["@id"].Value=Request.Params["id"];
    conn.Open();
    Label1.Text = cmd.ExecuteScalar().ToString();
    conn.Close();
      

  2.   

    谢谢 brightheroes(闭关|那一剑的风情) 的回复,问题已经解决。
      

  3.   

    本来我已经给了brightheroes(闭关|那一剑的风情) 应得的分数,结果CSDN网站出现问题,只好再重新给一次,不能让高级劳动没有价值!