2015-03-02 2 views
-3

У меня есть страница, которая возвращает зарегистрированного пользователя, например: AMR/JJohnson. hpw я могу написать SQL-запрос, чтобы сбросить AMR/JJ, и вернуть что-либо, содержащее «ансон», потому что мне нужен второй J, который взлетел, потому что у некоторых людей есть средние инициалы, поэтому мне нужно искать только фамилию. Я попытался это и другие не повез ...Поиск SQL-запроса с использованием специальных букв

cmd.CommandText = "SELECT * FROM Projects WHERE TesterName LIKE '" + Name + "%'"; 
+0

Простой поиск в Google это очень простой [SQL Basics-Beginners - LIKE statementt] (http://beginner-sql-tutorial.com/sql-like-in-operators.htm) – MethodMan

+1

Как насчет ведущего процента знак? –

+0

Это должно помочь cmd.CommandText = "SELECT * FROM Projects WHERE TesterName LIKE '%" + Name + "%'"; –

ответ

0

Удивительный, со всем помог мне удалось получить то, что мне было нужно! (переместил его немного, также я бы проголосовал за ответы, но я не могу ...)

вместо того, чтобы менять его после того, как я вытащил имя один раз, я изменил его в начале. Сначала я получил вошедшего в систему пользователя с:

string Name = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name; 

тогда я имел мой лейбл отобразить имена пользователей (также, чтобы увидеть, что он тянул для отладки), и я использовал ответ @Gaurav Шармы, чтобы удалить ненужные письма:

getUser.Text = Name.Remove(0,5); 

затем в моей команды SQL текст, я просто сделал:

cmd.CommandText = "SELECT * FROM Projects WHERE TesterName LIKE '" + getUser.Text + "%'"; 

и теперь, вместо показа и поиска AMR \ JJohnson, она ищет просто "Джонсон"

Надеюсь, это поможет кому-то читать!

0

Кода ниже использует C# для создания запрашиваемой подстроки и модифицировал инициал, как заявление, чтобы включать только дикую карту в передней части подстроки, а не на конец.

Перед

cmd.CommandText = "SELECT * FROM проектов WHERE TesterName LIKE '" + имя + "%';

После

cmd.CommandText = "SELECT * FROM Проекты, где TesterName LIKE '%" + Name.Substring (6) +' ";

0

Вы можете использовать приведенную ниже инструкцию, чтобы получить имя от имени пользователя. Этот оператор найдет индекс «\» в имени пользователя и удалит символы в одном месте больше, чем косая черта. Я добавляю 2 в найденном индексе, так как индексы начинаются с 0.

string query = "select * from projects where name like '%" + items.Remove(0,items.IndexOf("\\")+2) + @"%'"; 

В то же время, я буду рекомендовать не с помощью ПгвЬЫата или LastName в качестве уникального ключа. Вы должны использовать UserID для этого. Возможно иметь дублирующее имя, чтобы вернуть неверные записи. В случае, у вас нет доступа к userid, вы должны использовать UserName (например, «ARM \ JJohnson»), поскольку имена пользователей в основном уникальны.

Смежные вопросы