Sql server Visual Basic数据集无返回列
我创建了一个在全文数据库中执行搜索的存储过程。该过程本身非常有效,但当我尝试在visual studio中使用该过程创建数据集时,我无法显示结果列!我怎样才能让它工作 这是数据集屏幕的链接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
这是我的程序
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键然后它工作,数据集显示所有列。