android sqlite查询搜索错误
在过去的几个小时里,我一直在关注这个问题(很遗憾) 我正在用SQLite构建一个应用程序,该应用程序可以执行所有灵活的SQL命令。我目前一直在研究如何从ID以外的列中搜索查询 SQLiteDb:android sqlite查询搜索错误,android,android-intent,android-listview,android-fragments,android-sqlite,Android,Android Intent,Android Listview,Android Fragments,Android Sqlite,在过去的几个小时里,我一直在关注这个问题(很遗憾) 我正在用SQLite构建一个应用程序,该应用程序可以执行所有灵活的SQL命令。我目前一直在研究如何从ID以外的列中搜索查询 SQLiteDb: public class SqliteDbTab extends SQLiteOpenHelper { public static String DATABASENAME = "androidadvancesqlite"; public static String TABTABLE = "TABT
public class SqliteDbTab extends SQLiteOpenHelper
{
public static String DATABASENAME = "androidadvancesqlite";
public static String TABTABLE = "TABTABLE";
public static String ID = "ID";
public static String NAME = "name";
public static String PHONE = "PhOnE";
public static String MAIL = "mail";
public static String ADDRESS = "address";
public static String IMAGE = "image";
private ArrayList<Helperdb> cartList = new ArrayList<Helperdb>();
Context c;
public SqliteDbTab(Context context)
{
super(context, DATABASENAME, null, 33);
c = context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE if not exists TABTABLE(ID INTEGER PRIMARY KEY AUTOINCREMENT,"
+ NAME+ " text, "
+ IMAGE + " BLOB , "
+ PHONE + " text , "
+ MAIL + " text , "
+ ADDRESS + " TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2)
{
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS" + TABTABLE);
onCreate(db);
}
public void addContact(Helperdb productitem)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("NAME", productitem.name);
contentValues.put("PHONE", productitem.phone);
contentValues.put("MAIL", productitem.mail);
contentValues.put("ADDRESS", productitem.address);
contentValues.put("IMAGE", productitem.image);
db.insert(TABTABLE, null, contentValues);
db.close();
}
// update
public void updateContact(Helperdb productList)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("NAME", productList.name);
contentValues.put("PHONE", productList.phone);
contentValues.put("MAIL", productList.mail);
contentValues.put("ADDRESS", productList.address);
contentValues.put("IMAGE", productList.image);
db.update(TABTABLE, contentValues, "ID="+ productList.id, null);
db.close();
}
public void emptyProduct()
{
try {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(TABTABLE);
db.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
public void removeProduct(String id,String name, String phone, String mail,String address,byte[] blob)
{
try {
String[] args = { id };
getWritableDatabase().delete(TABTABLE, "ID=?", args);
} catch (Exception e)
{
e.printStackTrace();
}
}
public ArrayList<Helperdb> getProudcts()
{
cartList.clear();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from TABTABLE", null);
if (cursor.getCount() != 0)
{
if (cursor.moveToFirst())
{
do
{
Helperdb item = new Helperdb();
item.id = cursor.getString(cursor.getColumnIndex("ID"));
item.name = cursor.getString(cursor.getColumnIndex("name"));
item.phone = cursor.getString(cursor.getColumnIndex("PhOnE"));
item.mail = cursor.getString(cursor.getColumnIndex("mail"));
item.address = cursor.getString(cursor.getColumnIndex("address"));
item.image = cursor.getBlob(cursor.getColumnIndex("image"));
cartList.add(item);
}
while (cursor.moveToNext());
}
}
cursor.close();
db.close();
return cartList;
}
public ArrayList<Helperdb> getProudcts(String record)
{
cartList.clear();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor=db.query(true,TABTABLE,new String[]{"ID","name","PhOnE","mail","address","image"},"name"+"=?",new String[]{record},null,null,null,null);
if (cursor.getCount() != 0)
{
if (cursor.moveToFirst())
{
do {
Helperdb item = new Helperdb();
item.id = cursor.getString(cursor.getColumnIndex("ID"));
item.name = cursor.getString(cursor.getColumnIndex("name"));
item.phone = cursor.getString(cursor.getColumnIndex("PhOnE"));
item.mail = cursor.getString(cursor.getColumnIndex("mail"));
item.address = cursor.getString(cursor.getColumnIndex("address"));
item.image = cursor.getBlob(cursor.getColumnIndex("image"));
cartList.add(item);
} while (cursor.moveToNext());
}
}
cursor.close();
db.close();
return cartList;
}
}
请帮助我:我正在做搜索检索全名..没有在我输入的第一个字母
!![搜索界面]我想你应该试试“name”+“='”+record+“%”
您可以尝试这样的查询
String SEARCH_QUERY = "SELECT * FROM TABTABLE WHERE name like '"+record+"%'";
Cursor cursor = db.rawQuery(SEARCH_QUERY, null);
cursor.moveToFirst();
if (cursor.getCount() > 0)
{
do {
Helperdb item = new Helperdb();
item.id = cursor.getString(cursor.getColumnIndex("ID"));
item.name = cursor.getString(cursor.getColumnIndex("name"));
item.phone = cursor.getString(cursor.getColumnIndex("PhOnE"));
item.mail = cursor.getString(cursor.getColumnIndex("mail"));
item.address = cursor.getString(cursor.getColumnIndex("address"));
item.image = cursor.getBlob(cursor.getColumnIndex("image"));
cartList.add(item);
} while (cursor.moveToNext());
}
cursor.close();
到底是什么问题?你有错误吗??如果是,请发布logcat。当我输入全名时进行搜索时没有错误,然后进行搜索。它不使用第一个字母。请您举例说明,因为它在我这边工作。如果我在字符串中传递“a”,那么它将显示以“a”开头的所有单词,@Vaibhav Agarwal…k.我可以发送我的完整代码吗…给我你的邮箱地址@Vaibhav Agarwal谢谢..我知道了//
12-13 10:47:50.269: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:50.489: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:50.729: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:51.569: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:51.769: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:51.909: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:52.649: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:53.749: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:53.808: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:55.478: I/---onTextChanged ----(2307): ---------onTextChanged ----
12-13 10:47:55.598: I/System.out(2307): tidno>>>>>5
String SEARCH_QUERY = "SELECT * FROM TABTABLE WHERE name like '"+record+"%'";
Cursor cursor = db.rawQuery(SEARCH_QUERY, null);
cursor.moveToFirst();
if (cursor.getCount() > 0)
{
do {
Helperdb item = new Helperdb();
item.id = cursor.getString(cursor.getColumnIndex("ID"));
item.name = cursor.getString(cursor.getColumnIndex("name"));
item.phone = cursor.getString(cursor.getColumnIndex("PhOnE"));
item.mail = cursor.getString(cursor.getColumnIndex("mail"));
item.address = cursor.getString(cursor.getColumnIndex("address"));
item.image = cursor.getBlob(cursor.getColumnIndex("image"));
cartList.add(item);
} while (cursor.moveToNext());
}
cursor.close();