Возникли проблемы при использовании SelectCommand для выбора значений в базе данных SQL (C#)

Итак, в приложении, которое я создаю, у меня есть команда selectCommand, которая должна читать текст внутри текстового поля одним нажатием кнопки и фильтрует результаты поиска на основе значения.

Выберите команду.

SelectCommand="SELECT (bunch of columns) WHERE members.LastName LIKE '%@Ln%';

Значение @Ln извлекается из кода здесь:

public void searchButtonClick(object sender, EventArgs e)
    {
        SqlDataSource1.SelectParameters.Clear();
        SqlDataSource1.SelectParameters.Add("Ln", inputLastName.Text);        
    }

Моя цель - выбрать все записи с фамилиями, содержащими все, что было введено в текстовое поле фамилии. Например, я хочу "Мар", "Мартинес" или пустое текстовое поле, чтобы все выбирали кого-то с фамилией Мартинес. Пустое текстовое поле должно выбрать все фамилии.

Но я считаю, что моя проблема заключается в синтаксисе SelectCommand. Я протестировал его без одинарных кавычек и многих других вариантов безрезультатно. Если я оставлю только "WHERE members.LastName LIKE @Ln", он выберет записи, в которых фамилия является точным значением inputLastName.Text, но, как я уже говорил, это не то, что я ищу.:(

Я новичок в кодировании, поэтому, пожалуйста, постарайтесь объяснить как можно яснее, извините, если моя проблема не была сформулирована наилучшим образом. Заранее спасибо!

1 ответ

Решение

Не забудьте "@" в SqlDataSource1.SelectParameters.Add("@Ln",... и измени свой SelectCommand чтобы:

SelectCommand="SELECT (bunch of column) WHERE members.LastName LIKE @Ln";

SqlDataSource1.SelectParameters.Add("@Ln", '%' +  inputLastName.Text + '%');

так что должно работать.

Другие вопросы по тегам