2013-10-11 3 views
0

У меня есть сомнения по поводу кода линии в андроид приложение с SQLite:Использование цитат в SQLite андроида

if(db != null) 
    { 
     db.delete("Users", null, null); 

     //Insert 5 users 
     for(int i=1; i<=5; i++) 
     { 
      //Generate the data 
      int code = i; 
      String name = "User" + i; 

      //Insert data on table Users 
      db.execSQL("INSERT INTO Users (code, name) " + 
         "VALUES (" + code + ", '" + name +"')"); 
     } 
    } 

Весь код работы отлично, но в строке: db.execSQL("INSERT INTO Users (code, name) " + "VALUES (" + code + ", '" + name +"')");, если удалить ' характер, приложение выйдет из строя. Может ли кто-нибудь сказать мне, почему я должен использовать символ ', а также "? Почему недостаточно "?

Я ноб, извините, если мой вопрос слишком прост.

ответ

2

Во-первых, добрый господин, никогда не писать SQL, как это. Сделайте то, что говорит другой ответ (ы), чтобы делать вставки.

Во-вторых, это не работает, потому что столбец имен является строкой и поэтому должен быть указан в инструкции insert. SQL, что делает вставку является:.

INSERT INTO Users (code, name) VALUES (666, 'Bruce Dickinson') 
+0

Итак, если бы я написал «INSERT INTO Users (код, имя)» VALUES (666, «Bruce Dickinson») ', это не сработало бы? Я начинаю работать в SQLite и базах данных, и я не понимаю, в каких случаях я должен использовать символы «или». Я прочитал некоторую информацию на официальном сайте, но я не мог найти четкую информацию об этом или, может быть, я не понимаю. Спасибо за Ваш ответ. –

+0

Вам нужно понять разницу между строкой, которую необходимо отправить SQLite, и строкой, которую вы видите в своей среде IDE. Строка, которую я дал выше, - это то, что вам нужно отправить в базу данных, а не строку, которую вы видите в текстовом редакторе. – Erik

1

используйте класс ContentValues, чтобы задать информацию для компиляции SQL-заявления.

например:

ContentValues content = new ContentValues(); 
content.putString("name", "Bruce Dickinson"); 
content.putInt("code", 666); 

SqliteDatabase database = helper.getWritableDatabase(); 
database.insert("tablename", null, content); 
+1

Здравствуйте и спасибо за ваш ответ, я знаю, что вариант, но мой вопрос больше в каких случаях я должен использовать "или" символов в SQL Languaje Да , может быть, это слишком простой вопрос, но я не смог найти четкую информацию об этом. –

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