2013-10-14 3 views
0

Я не мог найти идеальный заголовок для проблемы, но здесь он приходит. Есть ли способ, которым строка «привет» может быть изменена на «привет» в java (android) ?? Это должно сделать мой запрос sql. Например, вот моя функция, написанная на Java для андроид приложенияПреобразование строки в массив char

public Cursor GetLecture(String course_code) 
{ 
    SQLiteDatabase sqldb = this.getReadableDatabase(); 
    String query = "SELECT * FROM Lecture WHERE course_code =" + course_code; 
    Cursor C = sqldb.rawQuery(query, null); 
    return C; 
} 

Проблема здесь состоит в том, что то, что нужно для запроса значения course_code быть, например, «S11'and не„S11“, который переменная course_code имеет как строку. Так как я могу изменить строковое значение, которое имеет двойную кавычку («») для одинарной кавычки (''), чтобы заставить запрос работать? Есть ли более короткий путь или мне нужно изменить весь алгоритм? Спасибо заранее за рассмотрение !!

ответ

1

Существует специальная конструкция для внесения значений в запрос:

p_query = "select * from mutable where name_field = ?"; 
mDb.rawQuery(p_query, new String[] { fieldValue }); 

или вы можете просто добавить управляющие символы и котировки

String query = "SELECT * FROM Lecture WHERE course_code = \"" + DatabaseUtils.sqlEscapeString(course_code) + "\""; 

здесь:

Android quotes within an sql query string

2

Строки представляют собой последовательность символов, разделенных двойными кавычками. Вы не можете разграничить их одиночными кавычками. Это для персонажей. Этот находится на Java.

В случае SQL запроса, чтобы заключите строку в одинарные кавычки, вы можете сделать это следующим образом:

String query = "SELECT * FROM Lecture WHERE course_code = '" + course_code + "'"; 
+0

Именно ответ я искал, проблема решена, спасибо !! – user2878050

2

Если переписать:

String query = "SELECT * FROM Lecture WHERE course_code =" + course_code; 

в

String query = "SELECT * FROM Lecture WHERE course_code ='" + course_code + "'"; 
Смежные вопросы