Проверка базы данных - PullRequest
       1

Проверка базы данных

0 голосов
/ 06 апреля 2011

Я добавляю значения в базу данных через кодирование.Я хочу, чтобы, если значения уже были добавлены в базу данных, это не должно быть добавлено снова.Как я могу поставить такую ​​проверку.

Моя таблица базы данных:

  final String DATA="create table if not exists Favorites5("+"id INTEGER PRIMARY KEY AUTOINCREMENT,"+"title TEXT,"+"employer TEXT,"+"location TEXT,"+"description TEXT,"+"city TEXT,"+"province TEXT,"+"lat TEXT,"+"log TEXT);";

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 07 апреля 2011

Моя проблема решена. Я публикую свой код для тех, кому он нужен.

проверить = 0; пытаться { Cursor cur = db.query ("Избранное7", ноль, ноль, ноль, ноль, ноль, ноль);

             cur.moveToFirst();
              while (cur.isAfterLast() == false) {

                    //name.append("n" + cur.getString(1));
                   //mylist.addAll(cur.getString(i));
                title1.add(cur.getString(1));

                            //nextScreenData.add(cur.getString(2).toString());
                    cur.moveToNext();
                }


                cur.close();
                for(int index=0; index<title1.size();index++)
                   {
                System.out.println(title1.get(index));
                   } 
                   System.out.println("AAAAA"+str1);
        } catch (Exception e) {
        check=1;
            // TODO Auto-generated catch block
            e.printStackTrace();
             Toast.makeText(getApplicationContext(), "No Jobs added",
                      Toast.LENGTH_SHORT).show();

        }

    adtofav.setOnClickListener(new View.OnClickListener() {


        public void onClick(View arg0) {
            int flag=0;
            // Adding values to database
            if(check==0)
            {
            for(int j=0;j<title1.size();j++)
                { 
               if( str1.equals(title1.get(j)))
               {
                   flag=1;
                   break;
               }

                }
            }
             if(flag==1)
             {
                 /*Toast.makeText(getApplicationContext(), "Jobs already added",
                          Toast.LENGTH_SHORT).show(); */
                 AlertDialog.Builder dialog = new AlertDialog.Builder(JobDesc.this);
                  dialog.setTitle("FAVORITES DATA");
                  dialog.setMessage("Data Already Exists");
                  dialog.setNeutralButton("OK",null);
                  dialog.show();
             }else
             {try {
                ContentValues values = new ContentValues();


                    values.put("title", str1);
                    values.put("employer",employee);
                    values.put("location", loc);
                    values.put("description",desc);
                    values.put("city",city);
                    values.put("province",province);
                    values.put("lat",lat);
                values.put("log",log);
                    db.insert("Favorites7",null, values);
                    db.close();
            } catch (Exception e) {
                AlertDialog.Builder dialog = new AlertDialog.Builder(JobDesc.this);
                  dialog.setTitle("FAVORITES DATA");
                  dialog.setMessage("Data Already Added");
                  dialog.setNeutralButton("OK",null);
                  dialog.show();
                // TODO Auto-generated catch block

            }
             }
        }
        });

Здесь Избранное 7 - моя таблица базы данных

0 голосов
/ 11 апреля 2011

У вас уже есть ограничение PRIMARY KEY для "id", поэтому база данных не позволит вам ввести две строки с одинаковым значением в столбец "id".

Если вы хотите предотвратить дублирование в каком-либо другом столбце, используйте уникальное ограничение для этого столбца. Например, чтобы избежать дубликатов в столбце «заголовок», используйте

create table if not exists Favorites5(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT UNIQUE,                     -- Title can't be duplicated.
    employer TEXT,
    location TEXT,
    description TEXT,
    city TEXT,
    province TEXT,
    lat TEXT,
    log TEXT
);

Рассмотрите возможность использования ограничений NOT NULL для всех этих столбцов.

0 голосов
/ 06 апреля 2011

Я точно не знаю, поддерживается ли это Android, но вы можете использовать триггеры.

Документация SQLite объясняет, как использовать их в SQLite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...