Visual Basic数据集没有返回列

时间:2014-11-03 16:34:36

标签: sql-server vb.net visual-studio-2010 stored-procedures

我创建了一个在全文数据库中执行搜索的存储过程。程序本身可以创造奇迹,但是当我尝试使用该程序在visual studio中创建数据集时,我无法获得结果列来显示!我怎么能让这个工作?

这是数据集屏幕的链接
http://i.stack.imgur.com/2YEfs.png

这是我的程序

    ALTER PROCEDURE [dbo].[Cliente_tSearch]
(
    @nombre nvarchar(100) = NULL,
    @proveedor int = 0,
    @searchType int = 0
)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @bool nvarchar(10) = 
case 
    when @searchType = 0 then 'AND'
    when @searchType = 1 then 'OR'
    when @searchType = 2 then 'AND NOT'
end
set @nombre = LTRIM(rtrim(@nombre))
if (CHARINDEX(char(32),@nombre,1)>0)
    begin
    set @nombre = REPLACE(replace(replace(@nombre,' ','<>'),'><',''),'<>',' ')
    set @nombre = REPLACE(@nombre,' ','*"'+ @bool +'"')
    end
set @nombre = '"'+ @nombre +'*"'

if(@nombre is not null) begin
    select 
    p.Nombre        as 'Corporativo',
    c.Referencia    as 'Referencia',
    c.Nombres       as 'Nombres',
    cp.tel_movil1   as 'Cel', 
    cp.tel_casa     as 'Res',
    case
        when cd.Inactivo = 0 then 'Activo'
        when cd.Inactivo = 1 then 'Inactivo'
    end             as 'Estado'
    from Clientes c
    JOIN Clientes_Datos cd on cd.Cliente = c.Código and cd.Proveedor = 
    case
        when @proveedor > 0 then @proveedor else cd.Proveedor end
    LEFT JOIN (SELECT Cliente, tel_movil1, tel_Casa from clientes_perfil) cp on cp.Cliente = c.Código
    LEFT JOIN (Select Código,Nombre from Proveedores) p on p.código = cd.proveedor
    INNER JOIN 
    CONTAINSTABLE(Clientes,(nombres,referencia),@nombre) as KEY_TBL
    on c.Código = KEY_TBL.[KEY]
    order by RANK desc;
    end
else if @nombre is null begin 
    select top 500
    p.Nombre        as 'Corporativo',
    c.Referencia    as 'Referencia', 
    c.Nombres       as 'Nombres',
    cp.tel_movil1   as 'Cel',
    cp.tel_casa     as 'Res',
    case 
        when cd.Inactivo = 0 then 'Activo' 
        when cd.Inactivo = 1 then 'Inactivo' 
    end             as 'Estado'
    from Clientes c
    JOIN Clientes_Datos cd on cd.Cliente = c.Código and cd.Proveedor = 
    case
        when @proveedor > 0 then @proveedor else cd.Proveedor end
    LEFT JOIN (select Cliente, tel_movil1, tel_casa from Clientes_Perfil) cp on cp.Cliente = c.Código
    LEFT JOIN (Select Código,Nombre from Proveedores) p on p.código = cd.proveedor
    order by 3
    end
END

0 个答案:

没有答案