我的webform包含一些复选框。如果选中了特定复选框,请将列名添加到sp.Like的select查询中 假设有4个复选框,如chklname,chkfname,chkcity,chkmobile。如果我检查 chklname和chkfname,我的查询将是:
SELECT LastName,FirstName FROM table1
如何在sp?
中编写答案 0 :(得分:2)
CREATE PROCEDURE ProcName
@chklname bit,
@chkfname bit,
@chkcity bit,
@chkmobile bit
AS
BEGIN
SET NOCOUNT ON;
--Only execute the statement if at least one of the checkboxes are set
if @chklname = 1 or @chkfname = 1 or @chkcity =1 or @chkmobile =1
begin
declare @sqlcommand nvarchar(max)
set @sqlcommand = N'Select '
if @chklname = 1
set @sqlcommand += N'FirstName '
if @chkfname = 1
begin
if len(@sqlcommand) > 1
set @sqlcommand += N','
set @sqlcommand += N'LastName '
end
if @chkcity = 1
begin
if len(@sqlcommand) > 1
set @sqlcommand += N','
set @sqlcommand += N'City '
end
if @chkmobile = 1
begin
if len(@sqlcommand) > 1
set @sqlcommand += N','
set @sqlcommand += N'Mobile '
end
set @sqlcommand += N' FROM table1'
exec sp_executesql @statement = @sqlcommand
end
END
GO
答案 1 :(得分:0)
这里你能做的最好的事情就是通过前端代码处理select中包含的列名数。
让我们说例如4个复选框,使用只选择2个fname和lname复选框。
所以在构成sql select语句之前的前端,你可以决定用户选择了哪个复选框,哪个没有被选中。基于此,你可以形成正确的select语句。