日期:2014-05-17  浏览次数:20422 次

新手请教一个参数化和存储过程的问题。
本帖最后由 snfeifie 于 2013-01-14 14:30:19 编辑
存储过程

CREATE    PROCEDURE dbo.[cx_csmenu]
@cid  bigint,
@curl varchar(500) output
AS
set @curl=(SELECT [csmenuimgurl] FROM [csmenu] WHERE [csmenuid ]=@cid)
return @curl
GO

C#调用存储过程代码

 metacn.Open();
                SqlCommand matcom = new SqlCommand("cx_csmenu", metacn);
                matcom.CommandType = CommandType.StoredProcedure;
                SqlParameter msp = matcom.Parameters.AddWithValue("@cid",SqlDbType.BigInt);
                msp.Value = 1;
                msp = matcom.Parameters.Add("@curl", SqlDbType.VarChar, 500);
                msp.Direction = ParameterDirection.Output;

                SqlDataAdapter metada = new SqlDataAdapter(matcom);
                DataSet metads = new DataSet("metads");
                metada.Fill(metads, "meta");

                this.lab1.Text = matcom.Parameters["@curl"].Value.ToString();

                matcom.Dispose();
                metada.Dispose();
                metads.Dispose();

怎么提示varchar 值 "XXXX" 转换为数据类型为 int 的列时发生语法错误,哪位大哥指点下。

------解决方案--------------------
恭喜了。。。。。。