Java 如何在Android中使用带SQLite的IN运算符?

Java 如何在Android中使用带SQLite的IN运算符?,java,android,android-sqlite,Java,Android,Android Sqlite,我已将status列添加到我的数据库表中,我希望搜索结果并显示status打开的所有员工姓名。当我运行应用程序时,我在编译查询时得到异常SQliteException没有这样的列xxx 我不知道该怎么做 这是我的密码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search_dat

我已将status列添加到我的数据库表中,我希望搜索结果并显示status打开的所有员工姓名。当我运行应用程序时,我在编译查询时得到异常
SQliteException没有这样的列xxx

我不知道该怎么做

这是我的密码:

public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search_data);

        searchSpinner=(Spinner)findViewById(R.id.searchSpinner);
        btnSearch=(Button)findViewById(R.id.searchButton);
        newLeadDat_List = (ListView)findViewById(R.id.listView_DisplayData);

        displayNewLeadData();
        System.out.println("Data Displayed Succesfully!!!!!!!!!");

        searchSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {
            @Override
            public void onItemSelected(AdapterView<?> parent, View v,
                    int position, long id) {
                // TODO Auto-generated method stub
                selectedSearchItem=parent.getItemAtPosition(position).toString().trim();
                System.out.println("selectedProductItem =" + selectedSearchItem);

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub  
            }
        });

        btnSearch.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0)
            {
                dbAdapter=new DataBase_Adapter(Serach_Data.this).open();
                dataBase = dbAdapter.getDatabaseInstance();


                    String query = "SELECT name FROM "+ DataBase_Adapter.TABLE_NEW_LEAD +" where "+ DataBase_Adapter.KEY_NEW_LEAD_STATUS +" IN  ("+ selectedSearchItem + ")";

                    cursor = dataBase.rawQuery(query , null);
                    adapter = new SimpleCursorAdapter(Serach_Data.this, 
                              R.layout.search_data_item_listview, 
                              cursor, 
                              new String[ ] {"name"}, 
                              new int[ ] {R.id.textView2_Name});

                    new_Lead_List_Adapter = new New_Lead_List_Adapter(Serach_Data.this  ,
                                 arrayList_newLead_Name );

                    newLeadDat_List.setAdapter(adapter);    
            }
        });
    }

    public void displayNewLeadData() 
    {
        dbAdapter=new DataBase_Adapter(Serach_Data.this).open();
        dataBase = dbAdapter.getDatabaseInstance();

        Cursor mCursor = dataBase.rawQuery("SELECT name FROM " + DataBase_Adapter.TABLE_NEW_LEAD, null);

        mCursor.moveToFirst();

        arrayList_newLead_Name.clear();

        {
            do 
            {   
                  arrayList_newLead_Name.add(mCursor.getString(mCursor.getColumnIndex(DataBase_Adapter.KEY_NEW_LEAD_NAME)));
            } while (mCursor.moveToNext());
        }

        new_Lead_List_Adapter = new New_Lead_List_Adapter(Serach_Data.this  ,
                                                        arrayList_newLead_Name );
        newLeadDat_List.setAdapter(new_Lead_List_Adapter);
        new_Lead_List_Adapter.notifyDataSetChanged();
        mCursor.close();
        System.out.printf("Data will Be Display." , new_Lead_List_Adapter);

    }
}
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.search_数据);
searchSpinner=(Spinner)findViewById(R.id.searchSpinner);
btnSearch=(按钮)findviewbyd(R.id.searchButton);
newLeadDat_List=(ListView)findViewById(R.id.ListView_DisplayData);
displayNewLeadData();
System.out.println(“数据显示成功!!!!!!!”;
searchSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView父视图、视图v、,
内部位置,长id){
//TODO自动生成的方法存根
selectedSearchItem=parent.getItemAtPosition(position.toString().trim();
System.out.println(“selectedProductItem=“+selectedSearchItem”);
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0)
{
dbAdapter=newdatabase_适配器(Serach_Data.this).open();
dataBase=dbAdapter.getDatabaseInstance();
String query=“从“+DataBase\u Adapter.TABLE\u NEW\u LEAD+”中选择名称,其中“+DataBase\u Adapter.KEY\u NEW\u LEAD\u STATUS+”位于(“+selectedSearchItem+”)”;
cursor=dataBase.rawQuery(查询,空);
适配器=新的SimpleCursorAdapter(Serachu Data.this,
R.layout.search\u data\u item\u listview,
光标,
新字符串[]{“名称”},
新的int[]{R.id.textView2_Name});
new_Lead_List_Adapter=new_Lead_List_Adapter(Serach_Data.this,
arrayList_newLead_Name);
newLeadDat_List.setAdapter(适配器);
}
});
}
public void displayNewLeadData()
{
dbAdapter=newdatabase_适配器(Serach_Data.this).open();
dataBase=dbAdapter.getDatabaseInstance();
游标mCursor=dataBase.rawQuery(“从“+dataBase\u Adapter.TABLE\u NEW\u LEAD中选择名称,空);
mCursor.moveToFirst();
arrayList_newLead_Name.clear();
{
做
{   
arrayList_newLead_Name.add(mCursor.getString(mCursor.getColumnIndex(DataBase_Adapter.KEY_NEW_LEAD_Name));
}while(mCursor.moveToNext());
}
new_Lead_List_Adapter=new_Lead_List_Adapter(Serach_Data.this,
arrayList_newLead_Name);
newLeadDat_List.setAdapter(new_Lead_List_Adapter);
新建_Lead_List_适配器。notifyDataSetChanged();
mCursor.close();
System.out.printf(“将显示数据。”,新的\u导线\u列表\u适配器);
}
}
这是我的日志Cat堆栈跟踪信息

12-13 14:43:37.880: I/System.out(528): selectedProductItem =open
12-13 14:43:39.760: I/Database(528): sqlite returned: error code = 1, msg = no such column: open
12-13 14:43:39.760: D/AndroidRuntime(528): Shutting down VM
12-13 14:43:39.760: W/dalvikvm(528): threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-13 14:43:39.810: E/AndroidRuntime(528): FATAL EXCEPTION: main
12-13 14:43:39.810: E/AndroidRuntime(528): android.database.sqlite.SQLiteException: no such column: open: , while compiling: SELECT name FROM new_lead where status IN  (open)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1324)
12-13 14:43:39.810: E/AndroidRuntime(528):  at com.lead_management_project.Serach_Data$2.onClick(Serach_Data.java:86)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.view.View.performClick(View.java:2485)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.view.View$PerformClick.run(View.java:9080)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.os.Handler.handleCallback(Handler.java:587)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.os.Looper.loop(Looper.java:123)
12-13 14:43:39.810: E/AndroidRuntime(528):  at android.app.ActivityThread.main(ActivityThread.java:3683)
12-13 14:43:39.810: E/AndroidRuntime(528):  at java.lang.reflect.Method.invokeNative(Native Method)
12-13 14:43:39.810: E/AndroidRuntime(528):  at java.lang.reflect.Method.invoke(Method.java:507)
12-13 14:43:39.810: E/AndroidRuntime(528):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-13 14:43:39.810: E/AndroidRuntime(528):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-13 14:43:39.810: E/AndroidRuntime(528):  at dalvik.system.NativeStart.main(Native Method)
12-13 14:43:37.880:I/System.out(528):selectedProductItem=open
12-13 14:43:39.760:I/数据库(528):sqlite返回:错误代码=1,消息=无此类列:打开
12-13 14:43:39.760:D/AndroidRuntime(528):关闭虚拟机
12-13 14:43:39.760:W/dalvikvm(528):threadid=1:线程退出时出现未捕获异常(组=0x40015560)
12-13 14:43:39.810:E/AndroidRuntime(528):致命异常:main
12-13 14:43:39.810:E/AndroidRuntime(528):android.database.sqlite.SQLiteException:无此类列:打开:,编译时:从状态为(打开)的新_lead中选择名称
12-13 14:43:39.810:E/AndroidRuntime(528):在android.database.sqlite.SQLiteCompiledSql.native_编译(本机方法)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:65)
12-13 14:43:39.810:E/AndroidRuntime(528):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:83)
12-13 14:43:39.810:E/AndroidRuntime(528):位于android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:49)
12-13 14:43:39.810:E/AndroidRuntime(528):位于android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
12-13 14:43:39.810:E/AndroidRuntime(528):位于android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1324)
12-13 14:43:39.810:E/AndroidRuntime(528):在com.lead_management_project.serachu Data$2.onClick(serachu Data.java:86)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.view.view.performClick(view.java:2485)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.view.view$PerformClick.run(view.java:9080)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.os.Handler.handleCallback(Handler.java:587)上
12-13 14:43:39.810:E/AndroidRuntime(528):位于android.os.Handler.dispatchMessage(Handler.java:92)
12-13 14:43:39.810:E/AndroidRuntime(528):在android.os.Looper.loop(Looper.java:123)上
12-13 14:43:39.810:E/AndroidRuntime(528):位于android.app.ActivityThread.main(ActivityThread.java:3683)
12-13 14:43:39.810:E/AndroidRuntime(528):位于java.lang.reflect.Method.Invokenactive(本机方法)
12-13 14:43:39.810:E/AndroidRuntime(528):在java.lang.reflect.Method.invoke(Method.java:507)
12-13 14:43:39.810:E/AndroidRuntime(528):在com.android.intern
" where "+ DataBase_Adapter.KEY_NEW_LEAD_STATUS +" IN  ('"+ selectedSearchItem + "')";