Поскольку вы используете элемент управления SqlDataSource
; Я думаю, что вам лучше всего создать хранимую процедуру и использовать ее. Затем вы можете установить значение параметра «по умолчанию» и установить что-то вроде «Все». Тогда ваша хранимая процедура может выполнить логику, выясняя, как создать «ГДЕ».
AFAIK SqlDataSource
не имеет возможности изменять или пропускать параметры.
EDIT
Более подробная информация здесь о настройке значений параметров по умолчанию. Это довольно просто.
Что касается вашей хранимой процедуры, вы хотели бы, чтобы она принимала параметр, возможно, строку, и затем она решала, использовать или нет предложение WHERE
, подобное этому:
CREATE PROCEDURE GetStatesFromParameter
-- Add the parameters for the stored procedure here
@state nvarchar(MAX) = 'All'
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF @state = 'All'
BEGIN
SELECT * FROM States
END
ELSE
BEGIN
SELECT * FROM States WHERE Name = @state
END
END
GO