请各位帮忙看看,SQL2000存储过程的问题

ssjywhr 2009-12-12 08:39:08
CREATE proc pr_user
@lu varchar(100),
@du varchar(100),
@ru varchar(100),
@uu varchar(100)
as
begin
select
userName,
JiFen,
JinBi
From userinfo
where userName=@lu or userName=@du or userName=@ru or userName=@uu
end
GO

我用如果上存储过程,在实际应用中,参数lu,du,ru,uu可以为null。我是当我调用这个存储过程时,如果其中一个参数为null,就会报错“过程pr_user需要参数@lu,但未提供该参数”。我是在C#里面调用的,其实我已经提供了,只不过值为null。请问要怎么办啊?
...全文
66 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿彪兄 2009-12-12
  • 打赏
  • 举报
回复
代码中判断也行
Aslangg 2009-12-12
  • 打赏
  • 举报
回复
更正下:
SqlParameter sp = new SqlParameter("@lu", DBNull.Value);
Aslangg 2009-12-12
  • 打赏
  • 举报
回复
這應該是你C#代碼的問題
    SqlCommand cmd = new SqlCommand();
SqlParameter sp = new SqlParameter("@lu", null);
cmd.Parameters.Add(sp);
Mr_Nice 2009-12-12
  • 打赏
  • 举报
回复
1、SQL的时候先判断是否为空
2、修改存储过程,把参数加上默认值为NULL




鸭子,你应该平衡啊!周六一大早。呵呵!sf难啊!
guguda2008 2009-12-12
  • 打赏
  • 举报
回复
怎么周六一大早还有人抢分
guguda2008 2009-12-12
  • 打赏
  • 举报
回复
两个解决办法,一是拼SQL的时候先判断是否为空,是的话用NULL代替,最后拼成 EXEC XXXX NULL,NULL,NULL,NULL这样的
二是修改存储过程,把参数加上默认值为NULL
liangCK 2009-12-12
  • 打赏
  • 举报
回复
CREATE proc pr_user
@lu varchar(100)=null,
@du varchar(100)=null,
@ru varchar(100)=null,
@uu varchar(100)=null
as
begin
select
userName,
JiFen,
JinBi
From userinfo
where userName=@lu or userName=@du or userName=@ru or userName=@uu
end
GO

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧