我在数据库中的存储过程如下(此存储过程根据文章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();写得虽然繁琐,但是我把问题说得很清楚,希望各位高人能够赐教一二,不胜感激!
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();写得虽然繁琐,但是我把问题说得很清楚,希望各位高人能够赐教一二,不胜感激!
@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();