没有这样的表:(code 1)在编译时:SELECT * FROM事件 [英] No such table: (code 1) while compiling: SELECT * FROM event

查看:1786
本文介绍了没有这样的表:(code 1)在编译时:SELECT * FROM事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,请不要因为我经历已经问起计算器这个错误,但仍没有帮助我的每一个问题查找纪念这一问题作为重复。我试图增加数据库的版本,卸载并重新安装应用程序,尝试不同的模拟器和实际的手机上甚至尝试。

这是我的logcat的:

  13 04-26:43:43.970:E / SQLiteLog(2331):(1)没有这样的表:事件
04-26 13:43:43.987:D / AndroidRuntime(2331):关闭VM
04-26 13:43:44.007:E / AndroidRuntime(2331):致命异常:主要
04-26 13:43:44.007:E / AndroidRuntime(2331):工艺:com.example.shareity,PID:2331
04-26 13:43:44.007:E / AndroidRuntime(2331):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.shareity / com.example.shareity.NewEvent}:android.database.sqlite.SQLiteException :没有这样的表:事件(code 1),在编译:SELECT * FROM事件
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.ActivityThread.access $ 800(ActivityThread.java:144)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1278)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.os.Handler.dispatchMessage(Handler.java:102)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.os.Looper.loop(Looper.java:135)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.ActivityThread.main(ActivityThread.java:5221)
04-26 13:43:44.007:E / AndroidRuntime(2331):在java.lang.reflect.Method.invoke(本机方法)
04-26 13:43:44.007:E / AndroidRuntime(2331):在java.lang.reflect.Method.invoke(Method.java:372)
04-26 13:43:44.007:E / AndroidRuntime(2331):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)
04-26 13:43:44.007:E / AndroidRuntime(2331):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-26 13:43:44.007:E / AndroidRuntime(2331):android.database.sqlite.SQLiteException:没有这样的表:事件(code1):由引起的,在编译时:SELECT * FROM事件
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteConnection.native prepareStatement(本机方法)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteConnection.acquire preparedStatement(SQLiteConnection.java:889)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteConnection prepare(SQLiteConnection.java:500)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteSession prepare(SQLiteSession.java:588)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteProgram<&初始化GT;(SQLiteProgram.java:58)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteQuery<&初始化GT;(SQLiteQuery.java:37)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
04-26 13:43:44.007:E / AndroidRuntime(2331):在com.example.shareity.library.DBHandlerEvent.getEventDetails(DBHandlerEvent.java:97)
04-26 13:43:44.007:E / AndroidRuntime(2331):在com.example.shareity.NewEvent.onCreate(NewEvent.java:100)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.Activity.performCreate(Activity.java:5933)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
04-26 13:43:44.007:E / AndroidRuntime(2331):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
04-26 13:43:44.007:E / AndroidRuntime(2331):10 ...更多
04-26 13:43:47.066:I /流程(2331年):发送信号。 PID:2331 SIG:9

当我点击我的ListView列表项出现的错误。

 公共类ListNew延伸活动{
ListView控件列表;
开斋节的TextView;
TextView中的ename;
TextView的edesc;
//按钮Btngetdata;
ArrayList的<&HashMap的LT;字符串,字符串>> oslist =新的ArrayList<&HashMap的LT;字符串,字符串>>();// URL获得JSON数组
私有静态字符串URL =HTTP://< myLink的> /test.php/// JSON节点名称
私有静态最后弦乐TAG_OS =事件;
私有静态最后弦乐TAG_EID =开斋节
私有静态最后弦乐TAG_ENAME =为ename;
私有静态最后弦乐TAG_ETYPE =VLAN时;
私有静态最后弦乐TAG_EDESC =edesc;
私有静态最后弦乐TAG_ESDATE =esdate;
私有静态最后弦乐TAG_EEDATE =eedate;
私有静态最后弦乐TAG_ESTIME =estime;
私有静态最后弦乐TAG_EETIME =eetime;
私有静态最后弦乐TAG_LOCATION =地利;
私有静态最后弦乐TAG_CREATED_AT =created_at;
私有静态最后弦乐TAG_EDITED_AT =edited_at;
私有静态最后弦乐TAG_CREATEDBY =createdby;
私有静态最后弦乐TAG_APPROVED =批复;JSONArray事件= NULL;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);    的setContentView(R.layout.listnew);
    oslist =新的ArrayList<&HashMap的LT;字符串,字符串>>();    新JSONParse()执行();
    / *
    Btngetdata =(按钮)findViewById(R.id.getdata);
    Btngetdata.setOnClickListener(新View.OnClickListener(){        @覆盖
        公共无效的onClick(查看视图){
             新JSONParse()执行();
        }
    });
    * /}私有类JSONParse扩展的AsyncTask<字符串,字符串,JSONObject的> {
     私人ProgressDialog pDialog;
    @覆盖
    在preExecute保护无效(){
        super.on preExecute();
         EID =(的TextView)findViewById(R.id.vers);
         为ename =(的TextView)findViewById(R.id.name);
         edesc =(的TextView)findViewById(R.id.api);
        pDialog =新ProgressDialog(ListNew.this);
        pDialog.setMessage(获得的数据...);
        pDialog.setIndeterminate(假);
        pDialog.setCancelable(真);
        pDialog.show();    }    @覆盖
    受保护的JSONObject doInBackground(字符串参数... args){        JSONParser jParser =新JSONParser();        // URL从JSON入门
        JSONObject的JSON = jParser.getJSONFromUrl2(URL);
        返回JSON;
    }
     @覆盖
     保护无效onPostExecute(JSON的JSONObject){
         pDialog.dismiss();
         尝试{
                // URL从获取JSON数组
                事件= json.getJSONArray(TAG_OS);
                的for(int i = 0; I< events.length();我++){
                JSONObject的C = events.getJSONObject(I)                //存放在变量JSON项目
                字符串EID = c.getString(TAG_EID);
                字符串的ename = c.getString(TAG_ENAME);
                字符串VLAN时= c.getString(TAG_ETYPE);
                字符串edesc = c.getString(TAG_EDESC);
                字符串esdate = c.getString(TAG_ESDATE);
                字符串eedate = c.getString(TAG_EEDATE);
                字符串estime = c.getString(TAG_ESTIME);
                字符串eetime = c.getString(TAG_EETIME);
                字符串位置= c.getString(TAG_LOCATION);
                字符串created_at = c.getString(TAG_CREATED_AT);
                字符串edited_at = c.getString(TAG_EDITED_AT);
                字符串createdby = c.getString(TAG_CREATEDBY);
                串批准= c.getString(TAG_APPROVED);
                //添加值的HashMap键=>值
                HashMap的<字符串,字符串>地图=新的HashMap<字符串,字符串>();                map.put(TAG_EID,EID);
                map.put(TAG_ENAME,为ename);
                map.put(TAG_ETYPE,VLAN时);
                map.put(TAG_EDESC,edesc);
                map.put(TAG_ESDATE,esdate);
                map.put(TAG_EEDATE,eedate);
                map.put(TAG_ESTIME,estime);
                map.put(TAG_EETIME,eetime);
                map.put(TAG_LOCATION,位置);
                map.put(TAG_CREATED_AT,created_at);
                map.put(TAG_EDITED_AT,edited_at);
                map.put(TAG_CREATEDBY,createdby);
                map.put(TAG_APPROVED批准);
                oslist.add(地图);
                名单=(ListView控件)findViewById(R.id.list);                //Log.d(\"TAG_isÐ第一个,TAG_APPROVED +,+批准);                ListAdapter适配器=新SimpleAdapter(ListNew.this,oslist,
                        R.layout.list_v,
                        新的String [] {TAG_ENAME,TAG_CREATEDBY,TAG_CREATED_AT},新的INT [] {
                                R.id.vers,R.id.name,R.id.api});
                list.setAdapter(适配器);                //Log.d(\"after设置适配器,TAG_EID +,+ TAG_ENAME);
                list.setOnItemClickListener(新AdapterView.OnItemClickListener(){                    @覆盖
                    公共无效onItemClick(适配器视图<>母公司,观景,
                                            INT位置,长的id){
                        //Toast.makeText(MainActivity.this,+ oslist.get(+位置)获得(为ename),Toast.LENGTH_SHORT).show()你在点击了;
                        意图I =新意图(ListNew.this,NewEvent.class);
                        i.putExtra(开斋节,oslist.get(+位置)获得(开斋节));
                        //i.putExtra(\"tel,tels.get(位置));
                        i.putExtra(为ename,oslist.get(+位置)获得(为ename));
                        i.putExtra(VLAN时,oslist.get(+位置)获得(VLAN时));
                        i.putExtra(edesc,oslist.get(+位置)获得(edesc));
                        i.putExtra(esdate,oslist.get(+位置)获得(esdate));
                        i.putExtra(eedate,oslist.get(+位置)获得(eedate));
                        i.putExtra(estime,oslist.get(+位置)获得(estime));
                        i.putExtra(eetime,oslist.get(+位置)获得(eetime));
                        i.putExtra(位置,oslist.get(+位置)获得(位置));
                        i.putExtra(created_at,oslist.get(+位置)获得(created_at));
                        i.putExtra(edited_at,oslist.get(+位置)获得(edited_at));
                        i.putExtra(createdby,oslist.get(+位置)获得(createdby));
                        i.putExtra(认可,oslist.get(+位置)获得(认可));
                        startActivity(ⅰ);                    }
                });
            }//万一
        }赶上(JSONException E){
            e.printStackTrace();
        }
     }
}

}

这是我的下一个意图哪些数据应该去点击一个列表项时。

 公共类NewEvent延伸活动{
按钮BK,newact;
字符串的ename;
串EID;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    // TODO自动生成方法存根
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.event);
    // DBHandlerEvent分贝=新DBHandlerEvent(getApplicationContext());
    // HashMap的<字符串,字符串>事件=新的HashMap<字符串,字符串>();
    //事件= db.getEventDetails();    BK =(按钮)findViewById(R.id.btnbackne);
    newact =(按钮)findViewById(R.id.btnnewact);    最终的TextView EN =(的TextView)findViewById(R.id.tvename);
    最终的TextView DES =(的TextView)findViewById(R.id.tvdescription);
    最终的TextView SD =(的TextView)findViewById(R.id.tvsdate);
    最终的TextView ED =(的TextView)findViewById(R.id.tvedate);
    最终的TextView位置=(的TextView)findViewById(R.id.tvgoal);
    最终的TextView章=(的TextView)findViewById(R.id.tveventregdate);    意向意图= getIntent();
       EID = intent.getStringExtra(开斋节);
       为ename = intent.getStringExtra(为ename);
       串edesc = intent.getStringExtra(edesc);
       串esdate = intent.getStringExtra(esdate);
       串eedate = intent.getStringExtra(eedate);
       串estime = intent.getStringExtra(estime);
       串eetime = intent.getStringExtra(eetime);
       串LOC = intent.getStringExtra(位置);
       串createdby = intent.getStringExtra(createdby);       //en.setText(eid);
       en.setText(为ename);
       des.setText(edesc);
       sd.setText(esdate);
       ed.setText(eedate);
       //en.setText(estime);
       //en.setText(eetime);
       location.setText(LOC);
       reg.setText(createdby);    bk.setOnClickListener(新View.OnClickListener(){        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            意图myIntent =新意图(v.getContext(),ListNew.class);
            startActivityForResult(myIntent,0);
            完();
        }
    });    数据库处理器分贝=新数据库处理器(getApplicationContext());
    HashMap的<字符串,字符串>用户=新的HashMap<字符串,字符串>();
    用户= db.getUserDetails();    DBHandlerEvent DBE =新DBHandlerEvent(getApplicationContext());
    HashMap的<字符串,字符串>事件=新的HashMap<字符串,字符串>();
    事件= dbe.getEventDetails();
    字符串logd = user.get(其中fname);
    串EV = event.get(createdBy);
    如果(logd.equals(EV)){
        newact.setVisibility(View.VISIBLE);
    }其他{
        newact.setVisibility(View.GONE);
    }    newact.setOnClickListener(新View.OnClickListener(){        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            / *
            意图myIntent2 =新意图(v.getContext(),CreateActivity.class);
            startActivityForResult(myIntent2,0);
            * /
               意图发送=新意图(NewEvent.this,Donate.class);
               send.putExtra(开斋节,EID);
               send.putExtra(ENAME,ename.toString());
               startActivity(发送);               完();
        }
    });    最终的TextView createdBy =(的TextView)findViewById(R.id.tvCreatedBy);
    ;+ user.get(其中fname))://createdBy.setText(\"Event通过创建}}

编辑:加入DB辅助类

 公共无效的onCreate(SQLiteDatabase DB){
    字符串CREATE_EVENT_TABLE =CREATE TABLE+ TABLE_EVENT +(
            + KEY_ID +INTEGER PRIMARY KEY
            + KEY_ENAME +TEXT
            + KEY_ETYPE +TEXT
            + KEY_EDES +TEXT
            + KEY_ESDATE +TEXT
            + KEY_EEDATE +TEXT
            + KEY_ESTIME +TEXT
            + KEY_EETIME +TEXT
            + KEY_LOCATION +TEXT
            + KEY_CREATED_AT +TEXT
            + KEY_EDITED_AT +TEXT
            + KEY_CREATED_BY +TEXT+);
    db.execSQL(CREATE_EVENT_TABLE);
    db.execSQL(PRAGMA foreign_keys = ON;);
} //数据库升级
@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
    如果存在//删除旧的表
    db.execSQL(DROP TABLE IF EXISTS+ TABLE_EVENT);
    //再次创建表
    的onCreate(DB);
}


解决方案

后,终于在计算器上聊天部分一些聊天,我发现我的答案。
该表没有在应用我的本地数据库文件创建。不是服务器。所以我加了
        DB = openOrCreateDatabase(StudentDB,Context.MODE_PRIVATE,NULL);
        db.execSQL(CREATE TABLE IF NOT EXISTS学生(EID VARCHAR,为ename VARCHAR,esdate VARCHAR););

到onCreate方法,现在工作得很好:)

First of all, please do NOT mark this question as duplicate because I have searched through EVERY question that has been asked about this error on stackoverflow, but still nothing helps me. I tried increasing the database version, uninstalling and reinstalling the app, trying different emulators and even tried on an actual phone.

This is my logcat:

04-26 13:43:43.970: E/SQLiteLog(2331): (1) no such table: event
04-26 13:43:43.987: D/AndroidRuntime(2331): Shutting down VM
04-26 13:43:44.007: E/AndroidRuntime(2331): FATAL EXCEPTION: main
04-26 13:43:44.007: E/AndroidRuntime(2331): Process: com.example.shareity, PID: 2331
04-26 13:43:44.007: E/AndroidRuntime(2331): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shareity/com.example.shareity.NewEvent}: android.database.sqlite.SQLiteException: no such table: event (code 1): , while compiling: SELECT  * FROM event
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.access$800(ActivityThread.java:144)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.os.Looper.loop(Looper.java:135)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.main(ActivityThread.java:5221)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at java.lang.reflect.Method.invoke(Native Method)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at java.lang.reflect.Method.invoke(Method.java:372)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-26 13:43:44.007: E/AndroidRuntime(2331): Caused by: android.database.sqlite.SQLiteException: no such table: event (code 1): , while compiling: SELECT  * FROM event
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.example.shareity.library.DBHandlerEvent.getEventDetails(DBHandlerEvent.java:97)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.example.shareity.NewEvent.onCreate(NewEvent.java:100)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.Activity.performCreate(Activity.java:5933)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
04-26 13:43:44.007: E/AndroidRuntime(2331):     ... 10 more
04-26 13:43:47.066: I/Process(2331): Sending signal. PID: 2331 SIG: 9

The error occurs when I click on a list item in my ListView.

public class ListNew extends Activity {
ListView list;
TextView eid;
TextView ename; 
TextView edesc;
//Button Btngetdata;
ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>();

//URL to get JSON Array
private static String url = "http://<mylink>/test.php/";

//JSON Node Names 
private static final String TAG_OS = "events";
private static final String TAG_EID = "eid";
private static final String TAG_ENAME = "ename";
private static final String TAG_ETYPE = "etype";
private static final String TAG_EDESC = "edesc";
private static final String TAG_ESDATE = "esdate";
private static final String TAG_EEDATE = "eedate";
private static final String TAG_ESTIME = "estime";
private static final String TAG_EETIME = "eetime";
private static final String TAG_LOCATION = "location";
private static final String TAG_CREATED_AT = "created_at";
private static final String TAG_EDITED_AT = "edited_at";
private static final String TAG_CREATEDBY = "createdby";
private static final String TAG_APPROVED = "approved";

JSONArray events = null;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.listnew);
    oslist = new ArrayList<HashMap<String, String>>();

    new JSONParse().execute();


    /*
    Btngetdata = (Button)findViewById(R.id.getdata);
    Btngetdata.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
             new JSONParse().execute();


        }
    });
    */

}



private class JSONParse extends AsyncTask<String, String, JSONObject> {
     private ProgressDialog pDialog;
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
         eid = (TextView)findViewById(R.id.vers);
         ename = (TextView)findViewById(R.id.name);
         edesc = (TextView)findViewById(R.id.api);
        pDialog = new ProgressDialog(ListNew.this);
        pDialog.setMessage("Getting Data ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();



    }

    @Override
    protected JSONObject doInBackground(String... args) {

        JSONParser jParser = new JSONParser();

        // Getting JSON from URL
        JSONObject json = jParser.getJSONFromUrl2(url);
        return json;
    }
     @Override
     protected void onPostExecute(JSONObject json) {
         pDialog.dismiss();
         try {
                // Getting JSON Array from URL
                events = json.getJSONArray(TAG_OS);
                for(int i = 0; i < events.length(); i++){
                JSONObject c = events.getJSONObject(i);

                // Storing  JSON item in a Variable
                String eid = c.getString(TAG_EID);
                String ename = c.getString(TAG_ENAME);
                String etype = c.getString(TAG_ETYPE);
                String edesc = c.getString(TAG_EDESC);
                String esdate = c.getString(TAG_ESDATE);
                String eedate = c.getString(TAG_EEDATE);
                String estime = c.getString(TAG_ESTIME);
                String eetime = c.getString(TAG_EETIME);
                String location = c.getString(TAG_LOCATION);
                String created_at = c.getString(TAG_CREATED_AT);
                String edited_at = c.getString(TAG_EDITED_AT);
                String createdby = c.getString(TAG_CREATEDBY);
                String approved = c.getString(TAG_APPROVED);




                // Adding value HashMap key => value




                HashMap<String, String> map = new HashMap<String, String>();

                map.put(TAG_EID, eid);
                map.put(TAG_ENAME, ename);
                map.put(TAG_ETYPE, etype);
                map.put(TAG_EDESC, edesc);
                map.put(TAG_ESDATE, esdate);
                map.put(TAG_EEDATE, eedate);
                map.put(TAG_ESTIME, estime);
                map.put(TAG_EETIME, eetime);
                map.put(TAG_LOCATION, location);
                map.put(TAG_CREATED_AT, created_at);
                map.put(TAG_EDITED_AT, edited_at);
                map.put(TAG_CREATEDBY, createdby);
                map.put(TAG_APPROVED, approved);


                oslist.add(map);
                list=(ListView)findViewById(R.id.list);

                //Log.d("TAG_is d first one", TAG_APPROVED + "," + approved);



                ListAdapter adapter = new SimpleAdapter(ListNew.this, oslist,
                        R.layout.list_v,
                        new String[] { TAG_ENAME,TAG_CREATEDBY, TAG_CREATED_AT }, new int[] {
                                R.id.vers,R.id.name, R.id.api});


                list.setAdapter(adapter);

                //Log.d("after setting adapter", TAG_EID + "," + TAG_ENAME);
                list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        //Toast.makeText(MainActivity.this, "You Clicked at "+oslist.get(+position).get("ename"), Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(ListNew.this, NewEvent.class);
                        i.putExtra("eid", oslist.get(+position).get("eid") );
                        //i.putExtra("tel", tels.get(position) );
                        i.putExtra("ename", oslist.get(+position).get("ename") );
                        i.putExtra("etype", oslist.get(+position).get("etype") );
                        i.putExtra("edesc", oslist.get(+position).get("edesc") );
                        i.putExtra("esdate", oslist.get(+position).get("esdate") );
                        i.putExtra("eedate", oslist.get(+position).get("eedate") );
                        i.putExtra("estime", oslist.get(+position).get("estime") );
                        i.putExtra("eetime", oslist.get(+position).get("eetime") );
                        i.putExtra("location", oslist.get(+position).get("location") );
                        i.putExtra("created_at", oslist.get(+position).get("created_at") );
                        i.putExtra("edited_at", oslist.get(+position).get("edited_at") );
                        i.putExtra("createdby", oslist.get(+position).get("createdby") );
                        i.putExtra("approved", oslist.get(+position).get("approved") );
                        startActivity(i);

                    }
                });


            }//end if
        } catch (JSONException e) {
            e.printStackTrace();
        }


     }
}

}

This is my next intent which the data should go to when a list item is clicked.

public class NewEvent extends Activity {


Button bk, newact;
String ename;
String eid;



@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.event);
    //DBHandlerEvent db = new DBHandlerEvent(getApplicationContext());
    //HashMap<String, String> event = new HashMap<String, String>();
    //event = db.getEventDetails();



    bk = (Button) findViewById(R.id.btnbackne);
    newact = (Button) findViewById(R.id.btnnewact);



    final TextView en = (TextView) findViewById(R.id.tvename);
    final TextView des = (TextView) findViewById(R.id.tvdescription);
    final TextView sd = (TextView) findViewById(R.id.tvsdate);
    final TextView ed = (TextView) findViewById(R.id.tvedate);
    final TextView location = (TextView) findViewById(R.id.tvgoal);
    final TextView reg = (TextView) findViewById(R.id.tveventregdate);



    Intent intent= getIntent();
       eid = intent.getStringExtra("eid");
       ename = intent.getStringExtra("ename");
       String edesc = intent.getStringExtra("edesc");
       String esdate = intent.getStringExtra("esdate");
       String eedate = intent.getStringExtra("eedate");
       String estime = intent.getStringExtra("estime");
       String eetime = intent.getStringExtra("eetime");
       String loc = intent.getStringExtra("location");
       String createdby= intent.getStringExtra("createdby");



       //en.setText(eid);
       en.setText(ename);
       des.setText(edesc);
       sd.setText(esdate);
       ed.setText(eedate);
       //en.setText(estime);
       //en.setText(eetime);
       location.setText(loc);
       reg.setText(createdby);





    bk.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent myIntent = new Intent(v.getContext(), ListNew.class);
            startActivityForResult(myIntent, 0);
            finish();
        }
    });

    DatabaseHandler db = new DatabaseHandler(getApplicationContext());
    HashMap<String,String> user = new HashMap<String, String>();
    user = db.getUserDetails();

    DBHandlerEvent dbe = new DBHandlerEvent(getApplicationContext());
    HashMap<String,String> event = new HashMap<String, String>();
    event = dbe.getEventDetails();


    String logd = user.get("fname");
    String ev = event.get("createdBy");
    if (logd.equals(ev)){
        newact.setVisibility(View.VISIBLE);
    }else{
        newact.setVisibility(View.GONE);
    }

    newact.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            /*
            Intent myIntent2 = new Intent(v.getContext(), CreateActivity.class);
            startActivityForResult(myIntent2, 0);
            */
               Intent send = new Intent(NewEvent.this, Donate.class);
               send.putExtra("eid", eid);
               send.putExtra("ename", ename.toString());
               startActivity(send);

               finish();
        }
    });





    final TextView createdBy = (TextView) findViewById(R.id.tvCreatedBy);
    //createdBy.setText("Event created by:  "+user.get("fname"));



}

}

Edit: added DB helper class

public void onCreate(SQLiteDatabase db) {
    String CREATE_EVENT_TABLE = "CREATE TABLE " + TABLE_EVENT + "(" 
            + KEY_ID + "INTEGER PRIMARY KEY,"
            + KEY_ENAME + " TEXT,"
            + KEY_ETYPE + " TEXT,"
            + KEY_EDES + " TEXT,"
            + KEY_ESDATE + " TEXT,"
            + KEY_EEDATE + " TEXT,"
            + KEY_ESTIME + " TEXT,"
            + KEY_EETIME + " TEXT,"
            + KEY_LOCATION + " TEXT,"
            + KEY_CREATED_AT + " TEXT,"
            + KEY_EDITED_AT + " TEXT,"
            + KEY_CREATED_BY + " TEXT " + ")";
    db.execSQL(CREATE_EVENT_TABLE);
    db.execSQL("PRAGMA foreign_keys=ON;");
}

 // Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_EVENT);
    // Create tables again
    onCreate(db);
}

解决方案

Finally after some chat in the chat section on stackoverflow, I found my answer. The table wasn't creating in my local database file in the app. Not the server. So I added db=openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null); db.execSQL("CREATE TABLE IF NOT EXISTS student(eid VARCHAR,ename VARCHAR,esdate VARCHAR);"); to the onCreate method and it works fine now :)

这篇关于没有这样的表:(code 1)在编译时:SELECT * FROM事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆