我想获取链接到数据库中特定电子邮件的电话号码。我找不到该查询或查询方式
public String getContactNumber(String email){
SQLiteDatabase db = this.getReadableDatabase();
String query = "SELECT " + COLUMN_USER_MOBILE_NUMBER + " FROM " + TABLE_USER + " WHERE " + email + " = " + COLUMN_USER_EMAIL;
Cursor cursor = db.rawQuery(query,null);
//What to put here to extract the data.
String contact = cursor.getString(get);
cursor.close();
return contact;
}
提取数据。完全是初学者
答案 0 :(得分:0)
试试这个..
panel_data.to_frame()
答案 1 :(得分:0)
public String getContactNumber(String email){
String contact = "";
SQLiteDatabase db = this.getReadableDatabase();
String query = "SELECT " + COLUMN_USER_MOBILE_NUMBER + " FROM " + TABLE_USER + " WHERE " + email + " = " + COLUMN_USER_EMAIL;
Cursor cursor = db.rawQuery(query,null);
if(cursor.getCount()>0) {
cursor.moveToNext();
contact = cursor.getString(cursor.getColumnIndex(COLUMN_USER_MOBILE_NUMBER));
}
//What to put here to extract the data.
cursor.close();
return contact;
}
通过这种方法,您可以轻松地通过任何其他方法来获取该电子邮件的电话号码值。
答案 2 :(得分:0)
我建议以下内容:-
public String getContactNumber(String email){
String contact = "NO CONTACT FOUND"; //<<<<<<<<<< Default in case no row is found.
SQLiteDatabase db = this.getWritableDatabase(); //<<<<<<<<<< Generally getReadable gets a writable database
String[] columns_to_get = new String[]{COLUMN_USER_MOBILE_NUMBER};
String whereclause = COLUMN_USER_EMAIL + "=?";
String[] whereargs = new String[]{email};
Cursor cursor = db.query(TABLE_USER,columns_to_get,whereclause,whereargs,null,null,null);
//What to put here to extract the data.
if (cursor.moveToFirst()) {
contact = csr.getString(csr.getColumnIndex(COLUMN_USER_MOBILE_NUMBER));
}
cursor.close();
return contact;
}
设置了默认值,以便您可以轻松判断是否传递了无效/不存在的电子邮件(如果需要,您可以检查返回值(可能更容易简单地使用“”并以检查)。
getReadableDatabase 已替换为 getWritableDatabase ,因为除非数据库存在问题,否则将按照以下方式返回可写数据库:-
创建和/或打开数据库。这将是返回的相同对象 通过getWritableDatabase()进行操作,除非出现某些问题,例如磁盘已满, 要求数据库以只读方式打开。在这种情况下, 将返回只读数据库对象。如果问题已解决,则 将来对getWritableDatabase()的调用可能会成功,在这种情况下, 只读数据库对象将关闭,而读/写对象 将来会退货。 getReadableDatabase
已使用推荐的 query 方法代替了 rawQuery 方法。这具有明显的优势,它可以构建基础SQL,还可以防止SQL注入(以防传递的电子邮件是由用户输入的情况)。
SQLiteDatabase - query -请注意,共有4种查询方法(有关细微差别,请参见链接,我相信这是最常用的方法)
数据提取是新代码。返回游标后,游标将位于第一行之前的位置,因此您需要移至有效行。因此, moveToFirst *方法很适合(请注意,如果通过move方法无法进行移动,则它将返回false,因此您可以说if (cursor.moveToFirst())
)。然后使用** getString 方法从相应的列中提取数据,该方法将int作为列偏移量的argumnet(在这种情况下为0)。但是,使用硬编码的值可能会导致问题,因此 getColumnIndex 方法用于根据列名获取偏移量(如果命名列不在Cursor中,则返回-1)。