2017-04-11 119 views
0

我已經在android studio中創建了一個數據庫,並且我可以通過.db文件訪問這些信息,在這裏我可以看到用戶在不同的自定義列中鍵入的所有信息。sqlite android數據庫信息操作

如果我們有一個場景,我被要求鍵入一個特定的字符串分配給數據庫中的一列,並且我的應用程序返回一個FALSE或一個POSITIVE,取決於我是否能夠提供它正確的信息。

例如:

我已經創建了在Android Studio中的數據庫文件有2列。 其中一列是(ID),另一列是(NAME)存儲NAME(人名學校名稱)的信息。

在應用程序的後面,要求用戶輸入學校中任何學生的姓名,如果用戶提供的信息是正確的,我們可以繼續,否則我們必須再試一次。 (所以這裏基本上是我們必須將我們輸入的信息與存儲在我們數據庫中的信息相匹配的地方)。

我是初學者。我將與您分享我的代碼,並就如何開始解決此問題徵求建議。

//The DatabaseHelper class I am working on right now 

public class DatabaseHelper extends SQLiteOpenHelper 
{ 
    public static final String DATABASE_NAME = "miris.db"; 
    public static final String TABLE_NAME = "miris_table"; 
    public static final String COL_1 = "id"; 
    public static final String COL_2 = "name"; 


    public DatabaseHelper(Context context) 
     { 
     super(context, DATABASE_NAME, null, 1); 

    } 

    @Override 
    public void onCreate(SQLiteDatabase db) 
     { 
     db.execSQL("create table " + TABLE_NAME +" (id INTEGER PRIMARY KEY 
     AUTOINCREMENT,name TEXT)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
     { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
     onCreate(db); 
    } 

     public boolean insertData (String name) 
      { 
      SQLiteDatabase db = this.getWritableDatabase(); 
      ContentValues contentValues = new ContentValues(); 
      contentValues.put(COL_2, name); 
      long result = db.insert(TABLE_NAME,null ,contentValues); 
      if(result == -1) 
      return false; 
     else 
      return true; 

      } 
    } 

回答

0

您可以在數據庫

插入它如前檢查從alredy存儲在數據庫中的信息收到信息。

 public boolean insertData (String name) 
    { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     String cols[]={COL_1,COL_2}; 

     Cursor c=db.query(TABLE_NAME, cols,COL_2+"=?",new String[]{""+name}, null, null, null); 
     if(c.getCount()>0){ 
      return false; 
     } 
     else{ 
      ContentValues contentValues = new ContentValues(); 
      contentValues.put(COL_2, name); 
      long result = db.insert(TABLE_NAME,null ,contentValues); 
      if(result == -1) 
       return false; 
      else 
       return true; 

     } 

     } 
+0

如果我們僅僅着眼於這一部分:光標C = db.query(TABLE_NAME,COLS,COL_2 + 「=」,新的String [] { 「」 +名},NULL,NULL,NULL); - 我試過閱讀關於遊標查詢的內容,但是我很難理解這部分。它究竟在做什麼? –