- 论坛徽章:
- 0
|
这是一个查询的存储过程,在SQL里执行均没有问题,可是用VS调用时,在任何条件都不输入的情况下,却什么都没有显示,为什么?
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
=============================================
ALTER PROCEDURE [dbo].[SP_SELECT_GoodsCategoryDict]
@PKID int = null,
@CategoryName varchar(20) = null,
@ParentNumber int = null,
@reason varchar(50) out
AS
DECLARE @l_PKID varchar(4)
DECLARE @l_CategoryName varchar(20)
DECLARE @l_ParentNumber varchar(4)
DECLARE @sql varchar(500)
BEGIN
--@sql = @sql + \' and B like \'\'\' + @l_b +\'\'\'\'
set @sql = \' select * from GoodsCategoryDict \'
if len(cast(@PKID as varchar(4))) = 0 or (@PKID is null) or @PKID = \'\'
begin
set @l_PKID = \'%\'
end
else
begin
set @l_PKID = @PKID
end
set @sql = @sql + \'where (cast(PKID as varchar(4)) like \'\'\'+ @l_PKID + \'\'\')\'
if (@CategoryName = \'\'\'\'\'\') or (len(@CategoryName) = 0) or (@CategoryName is null)
begin
set @l_CategoryName = \'%\'
end
else
begin
set @l_CategoryName = \'%\' + @CategoryName + \'%\'
set @sql = @sql + \'and (cast(CategoryName as varchar(4)) like \'\'\'+ @l_CategoryName + \'\'\')\'
end
if len(cast(@ParentNumber as varchar(4))) = 0 or (@ParentNumber is null) or @PKID = \'\'
begin
set @l_ParentNumber = \'%\'
end
else
begin
set @l_ParentNumber = @ParentNumber
set @sql = @sql + \'and (cast(ParentNumber as varchar(4)) like \'\'\'+ @l_ParentNumber + \'\'\')\'
end
--set @reason = @sql
execute (@sql)
if(@@rowcount<=0)
begin
set @reason=\'没有查找到符合条件。。。\'
return 1
end
END
在VS中,所运用的方法是,下拉框与该存储过程绑定调用。 |
|