Android 如何在SQLite中创建where子句查询?
我应该如何调用这个以字符串作为参数的方法,或者我应该如何执行这个查询 代码:Android 如何在SQLite中创建where子句查询?,android,sql,sqlite,Android,Sql,Sqlite,我应该如何调用这个以字符串作为参数的方法,或者我应该如何执行这个查询 代码: 公共类活动{ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_); Intent=getIntent(); ArrayList-SamsungList=getSamsungInfo(空); ListAdapter=new SimpleAdapte
公共类活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_);
Intent=getIntent();
ArrayList-SamsungList=getSamsungInfo(空);
ListAdapter=new SimpleAdapter(Samsung.this,SamsungList,R.layout.Samsung_list,新字符串[]{Sqlite.COLUMN_MNAME,Sqlite.COLUMN_MMODEL,
Sqlite.COLUMN\u MPRICE,Sqlite.COLUMN\u MCAMERA},新int[]{R.id.nameofsamsung,R.id.modelofsamsung,R.id.priceofsamsung,R.id.cameraofsamsung});
setListAdapter(适配器);
}
公共数组列表getSamsungInfo(字符串samsung){
ArrayList词表;
wordList=newarraylist();
Sqlite sqlll=新Sqlite(此);
SQLiteDatabase=sqlll.getReadableDatabase();
String selectQuery=“SELECT*FROM mobile WHERE mname=“+samsung+””;
Cursor=database.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
做{
HashMap=newHashMap();
map.put(Sqlite.COLUMN_MNAME,cursor.getString(0));
map.put(Sqlite.COLUMN_MMODEL,cursor.getString(1));
map.put(Sqlite.COLUMN_-MPRICE,cursor.getString(2));
map.put(Sqlite.COLUMN_MCAMERA,cursor.getString(3));
添加(地图);
}while(cursor.moveToNext());
}
返回词表;
}
}
没有名为“null”的列给了我一个错误。那么调用方法时应该传递什么呢。它没有使用samsung,samsung是mobile的mname列中插入的值。语法错误:
String selectQuery = "SELECT * FROM mobile WHERE mname="+samsung+"'";
它应该是(正确的撇号环绕字符串值):
或者更好(这里我使用一个变量)
其中,mobileName是一个传递的字符串,其中包含(例如)“samsung”
或者,甚至更好(有界论证)
其次是:
Cursor cursor = database.rawQuery(selectQuery, new String[] {mobileName});
其中,mobileName是一个传递的字符串,其中包含(例如)“samsung”-与前面相同此处的
null
被字符串参数替换您需要在SQL中引用您的文本:
String selectQuery = "SELECT * FROM mobile WHERE mname='"+samsung+"'";
尽管最好使用绑定参数,如下所示:
String selectQuery = "SELECT * FROM mobile WHERE mname=?";
Cursor cursor = database.rawQuery(selectQuery, new String[] { samsung });
另外,将实际参数传递给
getSamsungInfo()
而不是null
我已经尝试过了,但是在调用getSamsungInfo时,我传递了null,因此它再次显示此错误。这是不允许的。。要求我创建区域设置变量“samsung”。如果我要创建,它将被空化。这是一个方法参数,请参见getSamsungInfo(String samsung)
-您需要在调用方法中使用getSamsungInfo(null)
更改调用该方法的部分:而不是getSamsungInfo(null),我该怎么办??正如你上面所说的,它不带走任何其他东西。。如果我正在执行getSamsungInfo(),那么它将在此行中显示错误:Cursor Cursor=database.rawQuery(selectQuery,new String[]{samsung});错误:创建局部变量。
String selectQuery = "SELECT * FROM mobile WHERE mname = ?";
Cursor cursor = database.rawQuery(selectQuery, new String[] {mobileName});
String selectQuery = "SELECT * FROM mobile WHERE mname='"+samsung+"'";
String selectQuery = "SELECT * FROM mobile WHERE mname=?";
Cursor cursor = database.rawQuery(selectQuery, new String[] { samsung });