2016-07-29 3 views
-1

Я создал одну базу данных с тремя столбцами, и теперь я хочу найти номер, который я даю от EditText, с сообщением, что он присутствует в этой колонке или нет.Я хочу найти номер из столбца из базы данных sqlite

Это моя база данных

public class DBHelper extends SQLiteOpenHelper { 

    private final static String DATABASE_NAME = "Tracker"; 
    private final static int DATABASE_VERSION = 1; 
    private final static String TABLE_NAME = "registration"; 
    private final static String COL_ID = "id"; 

    private final static String COL_name = "Name"; 
    private final static String COL_email = "Email_id"; 
    private static final String COL_contact = "ContactNo"; 

    private static final String createTableQuery = "CREATE TABLE " + TABLE_NAME + "(" + 
      COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COL_name + " TEXT," + 
      COL_email + " TEXT," + 
      COL_contact + " TEXT)"; 

    public DBHelper(Context context) { 
     //1. Initialised database 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(createTableQuery); 
    } 

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

     onCreate(db); 
    } 

    public long insert(User user) { 
     // 1. init database object 
     SQLiteDatabase DataBase = this.getWritableDatabase(); 

     // 2. init ContentValues object 
     ContentValues row = new ContentValues(); 

     row.put(COL_name, user.getName1()); 
     row.put(COL_email, user.getMail1()); 
     row.put(COL_contact, user.getCon1()); 

     // row.put(KEY_ListItem,getListItem(cur)); 

     //3. insert row into table 
     long id = DataBase.insert(TABLE_NAME, null, row); 
     //4. disconnect database 
     DataBase.close(); 
     if (id != 0) { 
      return id; 
     } 
     return 0; 
    } 

А теперь я хочу, чтобы искать номер от этой деятельности

public class TestActivity extends AppCompatActivity implements View.OnClickListener { 

    TextView tv1; 
    // EditText conNo; 

    private DBHelper databaseHelper; 
    public final static String KEY = "position"; 
    TelephonyManager tel; 

    String phoneNumber; 
    ListView listview; 
    ArrayList<String> arraylist= new ArrayList<String>(); 

    EditText conNo; 
    Button Search; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_test); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    conNo= (EditText) findViewById(R.id.editText4); 
    Search= (Button) findViewById(R.id.button2); 
}} 

Когда я редактирую в conNo и после нажатия кнопки поиска он должен проверить номер от contactno.

Просьба предложить мне возможные пути решения этой проблемы.

+0

решена ли проблема? –

ответ

2

Применить ниже Запрос Фро поиск номера сюда mthe колонки в БД SQLite:

String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE " + ContactNo + " = '" + EDIT_TEXT_NUMBER +"'"; 
+0

EDIT_TEXT_NUMBER это в другом классе, так что я должен писать –

+0

, вы начинаете в android –

+0

создавать параметризованный метод в классе sqlite DB для получения номера из таблицы и вызывать его в классе EDIT_TEXT_NUMBER с параметром номера контакта. Если еще проблема спросит? –

1

Создать метод в классе DB, как

public static function getNumber(edit_text_number){ 
    String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE " + ContactNo + " = '" + edit_text_number +"'"; 
    return db.execSQL(selectQuery); 
} 

И вызвать эту функцию от деятельности как

EditText editText = findViewById(R.id.edit_text) 
result = getNumber(editText.getText().toString()) 
+0

, показывающий ошибку в функции, db, result –

+0

public void onClick (View v) { String contact = conNo.getText(). ToString(); если (база данныхHelper.searchPass (контакт)! = Контакт) { Toast.makeText (TestActivity.this, "Login Successful", Toast.LENGTH_LONG); } { Toast.makeText (TestActivity.this, "Not Ok", Toast.LENGTH_LONG); }} –

+0

я написал это в моей основной деятельности и в dbclass я написал это, –

1

Проверьте код,

 public boolean ifNumberExists(String strNumber) 
    { 
     Cursor cursor = null; 
     String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE " + ContactNo + " = '" + strNumber +"'"; 
      cursor= db.rawQuery(selectQuery,null); 
      boolean exists = (cursor.getCount() > 0); 
      cursor.close(); 
      return exists; 
    } 

для основной деятельности

search.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 
      DBHelper db = new DBHelper(getApplicationContext()); 

      if(dbObject.ifNumberExists(conNo.getEditableText())) 
       { 
        // Toast Number Exists 
       } 
       else 
       { 
       // Number not Exists 
       } 
     } 
    } 
+0

и в основном виде деятельности? –

+0

В основном действии внутри события нажатия кнопки поиска просто вызовите этот метод как dbObject.ifNumberExists (conNo.getEditableText()); – Vickyexpert

+0

проверить отредактированный ответ – Vickyexpert

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