из моей C# -программы я обращаюсь к базе данных SQL Server 2008. У меня есть таблица с fulltextindex и хочу найти индексированную запись:с использованием параметра в SQL с ключевым словом LIKE
SELECT page_id FROM page_categories WHERE page_title LIKE @title
Когда «названия» не имеет withespaces все нормально, но когда название действительно содержит withespaces, запрос не выполняется. Он не проливает ошибку, но возвращенная записей закрыт
command.ChangeParameter("title", title);
using (System.Data.IDataReader reader = command.ExecuteQuery())
{
while (reader.Read())
resultSet.Add(reader.GetInt32(0));
reader.Close();
}
Я не могу заключить @title параметр с «», потому что тогда команда-объект будет интерпретировать @title в виде строки, а не параметр.
SELECT page_id FROM page_categories WHERE page_title LIKE '@title'
Каждый знает, как я могу использовать параметр для LIKE запроса, когда титульный параметр может содержать пробелы?
Спасибо заранее, Frank
Я хочу соответствовать точной строке. Предположим, у меня есть «инструмент» и «инструментальные песни» в моей базе данных. Когда я ищу с заголовком = «инструмент», я хочу получить ТОЛЬКО строку со значением «инструмент», а не «инструментальные песни». Но это было бы так, когда я использую подстановочные знаки ... – Aaginor
Тогда вы должны быть в состоянии сделать, где page_title = @title. Возможно, вам нужно предоставить лучшие примеры ... – cjk
Что я хочу сделать, это относительно просто: у меня есть таблица с nvarchar-строкой и id. Я хочу получить id (ы) - я не могу быть уверен, что nvarchar уникален - для данной строки. – Aaginor