存储过程

yumei20001 2005-03-30 05:11:12
在c#里调用存储过程如下:
create proc user_advancedQuery
(
@paramMemberName char(40),
@paramPolitical char(10),
@paramEdu char(10),
@paramDetailedUnit char(20),
@paramRewardAndPunish char(500)
)
AS
if @paramMemberName=""
set @paramMemberName='%'
if @paramPolitical=""
set @paramPolitical='%'
if @paramEdu=""
set @paramEdu='%'
if @paramDetailedUnit=""
set @paramDetailedUnit='%'
if @paramRewardAndPunish=""
set @paramRewardAndPunish='%'
select IdCard,MemberName,Sex,Political,BirthDate,Native,Edu,DetailedUnit,Tel,HireDate from YouthInfo
where (MemberName like @paramMemberName)and
(Political like @paramPolitical)and
(Edu like @paramEdu) and
(DetailedUnit like @paramDetailedUnit) and
(RewardAndPunish like @paramRewardAndPunish)
go
传人值:
advancedQueryCmd.Parameters.Add("@paramMemberName",SqlDbType.NVarChar,40,"MemberName").Value="";
advancedQueryCmd.Parameters.Add
("@paramPolitical",SqlDbType.Char,10,"Political").Value="";
advancedQueryCmd.Parameters.Add
("@paramEdu",SqlDbType.Char,10,"Edu").Value="";
advancedQueryCmd.Parameters.Add("@paramDetailedUnit",SqlDbType.NVarChar,40,"DetailedUnit").Value="";
advancedQueryCmd.Parameters.Add("@paramRewardAndPunish",SqlDbType.NVarChar,500,"RewardAndPunish").Value="";
为什么总是没有结果???
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
syfsz 2005-03-30
  • 打赏
  • 举报
回复
CREATE PROCEDURE BW_BWTest_GetPKey
@Addon nVarchar (3),
@ADDRESS2 nVarchar (20),
@TRANSACTIONID INT,
@TIMELASTMOD DATETIME,
@USERIDLASTMOD CHAR(20), --传进去的值
@pKey int Output --传出来的值
AS
Declare @lipKey int
select @lipKey = pkey from BWTest
where Addon= @Addon
and ADDRESS2= @ADDRESS2

If @lipKey is null
Begin
EXEC GetNextId 'BWTest.pKey', 1, @lipKey OUTPUT
Insert into BWTest (pKey,Addon,
ADDRESS2,TotS_Qty,TotC_Qty,
TotGM_Qty,Sc_TimeCreated,Sc_TimeLastMod,
Sc_UserIdLastMod)
Values(@lipKey,@Addon,
@ADDRESS2,0,0,0,getdate(),getdate(),@USERIDLASTMOD)
End
Set @pKey=@lipKey
yumei20001 2005-03-30
  • 打赏
  • 举报
回复
双引号是我打错了,问题找到了,没有消除空格

create proc user_advancedQuery
(
@paramMemberName char(40),
@paramPolitical char(10),
@paramEdu char(10),
@paramDetailedUnit char(20),
@paramRewardAndPunish char(500)
)
AS
if @paramMemberName=''
set @paramMemberName='%'
if @paramPolitical=''
set @paramPolitical='%'
if @paramEdu=''
set @paramEdu='%'
if @paramDetailedUnit=''
set @paramDetailedUnit='%'
if @paramRewardAndPunish=''
set @paramRewardAndPunish='%'
select IdCard,MemberName,Sex,Political,BirthDate,Native,Edu,DetailedUnit,Tel,HireDate from YouthInfo
where (MemberName like RTRIM (@paramMemberName))and
(Political like RTRIM(@paramPolitical))and
(Edu like RTRIM(@paramEdu))and
(DetailedUnit like RTRIM(@paramDetailedUnit))and
(RewardAndPunish like RTRIM(@paramRewardAndPunish))
go
jerry_yuan 2005-03-30
  • 打赏
  • 举报
回复
SQL好像是用单引号。
if @paramMemberName=''
set @paramMemberName='%'
if @paramPolitical=''
set @paramPolitical='%'
if @paramEdu=''
set @paramEdu='%'
if @paramDetailedUnit=''
set @paramDetailedUnit='%'
if @paramRewardAndPunish=''
set @paramRewardAndPunish='%'

你试试

yumei20001 2005-03-30
  • 打赏
  • 举报
回复
大家帮忙看看啊~~~~~~~~
yumei20001 2005-03-30
  • 打赏
  • 举报
回复
user_advancedQuery '','','','',''执行以后没有结果,我怀疑是存储过程的问题
lishengyu 2005-03-30
  • 打赏
  • 举报
回复
2 在查询分析器里执行 user_advancedQuery '','','','',''
lishengyu 2005-03-30
  • 打赏
  • 举报
回复
1查看 YouthInfo  看数据库有没有记录

2 user_advancedQuery '','','','','' 看看有没有结果
如有结果肯定是前台问题

3用事件查看器跟踪前台传来的SQL语句 看看哪个值有什么异样

yumei20001 2005-03-30
  • 打赏
  • 举报
回复
大家都去吃饭了吗?
yumei20001 2005-03-30
  • 打赏
  • 举报
回复
谢谢支持
zr1982930 2005-03-30
  • 打赏
  • 举报
回复
不会把,顶一下!

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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