Это мой запрос в хранимой процедуре.Я использую ретранслятор для отображения информации.Проблема в том, что если я ищу, скажем
Ename = Джим
ELocation = Центр Смита
ECity = Атланта
через построитель запросов, я получаюдва результата, которые у меня есть, которые соответствуют этому.Но когда я связываю свой источник данных с ретранслятором и добавляю параметры, затем пытаюсь выполнить запрос, мой репитер пуст.Переменные передаются из элементов управления Textbox.Также, если я передаю только одну переменную, скажем, как title, она работает просто отлично.Но когда я пытаюсь передать две или более переменных, я ничего не получаю.Кто-нибудь есть какие-либо идеи о том, что делать?
@title varchar(150),
@venue varchar(150),
@city varchar(100),
@state varchar(50),
@country varchar(100),
@desc varchar(150),
@date smalldatetime = null
AS
SELECT EID, EName, EDate, EDEnd, ELocation, ECity, EState, EDesc, EWebsite
FROM esc
WHERE (@title IS NULL OR EName LIKE '%' + @title + '%')
AND (@venue IS NULL OR ELocation LIKE '%' + @venue + '%')
AND (@city IS NULL OR ECity LIKE '%' + @city + '%')
AND (@state IS NULL OR EState LIKE '%' + @state + '%')
AND (@country IS NULL OR ECountry = @country)
AND (@desc IS NULL OR EDesc LIKE '%' + @desc + '%')
AND (@date IS NULL OR EDate = @date)
Сжатый код при нажатии кнопки .:
SqlConnection conn = null;
try
{
conn = new SqlConnection("");
SqlCommand command = new SqlCommand();
command.Connection = conn;
command.CommandText = "seesc";
command.CommandType = CommandType.StoredProcedure;
SqlParameter title = new SqlParameter();
title.ParameterName = "@title";
title.SqlDbType = SqlDbType.VarChar;
title.Direction = ParameterDirection.Input;
title.Value = TitleTextBox.Text;
//other parameters declared here
command.Parameters.Add(title);
//other parameters added here
conn.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
evrep.DataSource = reader;
evrep.DataBind();
}
}
catch { }