Sql server Visual Basic数据集无返回列

Sql server Visual Basic数据集无返回列,sql-server,vb.net,visual-studio-2010,stored-procedures,Sql Server,Vb.net,Visual Studio 2010,Stored Procedures,我创建了一个在全文数据库中执行搜索的存储过程。该过程本身非常有效,但当我尝试在visual studio中使用该过程创建数据集时,我无法显示结果列!我怎样才能让它工作 这是数据集屏幕的链接 这是我的程序 ALTER PROCEDURE [dbo].[Cliente_tSearch] ( @nombre nvarchar(100) = NULL, @proveedor int = 0, @searchType int = 0 ) AS BEGIN SET NOCO

我创建了一个在全文数据库中执行搜索的存储过程。该过程本身非常有效,但当我尝试在visual studio中使用该过程创建数据集时,我无法显示结果列!我怎样才能让它工作

这是数据集屏幕的链接

这是我的程序

    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
ALTER过程[dbo].[Cliente\u tSearch]
(
@nombre nvarchar(100)=空,
@proveedor int=0,
@searchType int=0
)
像
开始
不计数;
声明@bool nvarchar(10)=
案例
当@searchType=0时,则为“和”
当@searchType=1时,则为“或”
当@searchType=2时,则为“且不”
终止
设置@nombre=LTRIM(rtrim(@nombre))
if(CHARINDEX(char(32),@nombre,1)>0)
开始

设置@nombre=REPLACE(REPLACE)(REPLACE(@nombre,,,,,,,,,,,)>好吧,如果问题出现在VB.NET中,那么你应该向我们展示你用来调用这个过程的代码。奇怪的是,如果我在SQL代码中删除这部分,“内部连接CONTAINSTABLE(Clientes,(nombre,referencea),@nombre)作为c.código=KEY_TBL上的KEY_TBL键然后它工作,数据集显示所有列。