SAL

  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

存储过程的参数默认值的问题

Posted on 2009-11-16 15:22  SAL  阅读(2577)  评论(0编辑  收藏  举报

存储过程的参数默认值如果有填的话,在.net里面不写这个参数的SqlParameter,直接使用的是他在存储过程的默认值存储,但是如果该参数没有默认值的话,在.net代码里面一定要写对应的SqlParameter,否则会出错。

如存储过程sp_insert_info

ALTER PROCEDURE dbo.sp_insert_info
@info_id int output,
@info_citycode nvarchar(50),
@info_areacode nvarchar(50),
@info_gqlxid int,
@info_gqlbid int,
@info_price nvarchar(50)='哈哈',
@info_title nvarchar(50),
@info_content nvarchar(1000),

 

cs代码写里面

            SqlParameter[] parameters = {
     new SqlParameter("@info_id", SqlDbType.Int,4),
     new SqlParameter("@info_citycode", SqlDbType.NVarChar,50),
     new SqlParameter("@info_areacode", SqlDbType.NVarChar,50),
     new SqlParameter("@info_gqlxid", SqlDbType.Int,4),
     new SqlParameter("@info_gqlbid", SqlDbType.Int,4),
     new SqlParameter("@info_title", SqlDbType.NVarChar,50),
     new SqlParameter("@info_content", SqlDbType.NVarChar,1000)};

            parameters[0].Direction = ParameterDirection.Output;
            parameters[1].Value = model.info_citycode;
            parameters[2].Value = model.info_areacode;
            parameters[3].Value = model.info_gqlxid;
            parameters[4].Value = model.info_gqlbid;
            parameters[5].Value = model.info_title;
            parameters[6].Value = model.info_content;

完成可以执行,参数info_price的值为存储过程中的默认值(即:'哈哈')