package com.java.wjd;import android.app.Activity;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;public class StuInfoActivity extends Activity {
    /** Called when the activity is first created. */
    
/*基本数据定义*/
public int sqlnum = 0;
/*控件定义*/
private ListView listview =null;

/*数据库定义*/
private SQLiteDatabase db = null;
private final static String DATABASE_NAME = "Listinfo.db";
private final static String TABLE_NAME = "T_list";
private final static String TABLE_ID ="id";
private final static String TABLE_USENAME ="usename";
private final static String TABLE_PHONE ="phone";
private final static String TABLE_QQ ="qq";
private final static String TABLE_ADDRESS ="address";
private final static String CREATE_TABLE ="create table "+TABLE_NAME+" ("+TABLE_ID+" int,"+TABLE_USENAME+" nvarchar(255),"+TABLE_PHONE+" int,"+TABLE_QQ+" int,"+TABLE_ADDRESS+" varchar(255))";


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findId();
        init();
        
    }
    
    public void findId(){
     listview = (ListView)findViewById(R.id.ls);
    }
    
    public void init(){
     this.deleteDatabase(DATABASE_NAME);
     db = this.openOrCreateDatabase(DATABASE_NAME,MODE_PRIVATE,null);
     try{
     db.execSQL(CREATE_TABLE);
     write();
     read();
     }
     catch(Exception e){
    
     }
    }
    
    
    public void read(){
    
     Cursor cursor = db.rawQuery("select * from "+TABLE_NAME+"",new String[]{TABLE_ID.toString()});
     System.out.println("你好");
     sqlnum = cursor.getCount();
     System.out.println(sqlnum);
     if(cursor != null && sqlnum > 0){
    
     Toast toast = Toast.makeText(this,"有数据插入了",Toast.LENGTH_SHORT);
     toast.show();
     }
     cursor.close();
    }
    
    public void write(){
     ContentValues cv = new ContentValues();
     cv.put(TABLE_ID,1);
     cv.put(TABLE_USENAME,"wjd");
     cv.put(TABLE_PHONE,123456);
     cv.put(TABLE_QQ,752570126);
     cv.put(TABLE_ADDRESS,"浙江");
     db.insert(TABLE_NAME,null,cv);
    }
    
}请问这段代码有啥问题啊,为啥无法读出数据来

解决方案 »

  1.   

    你需要先关闭数据库才是存进去了。然后才能读。
    db.execSQL(CREATE_TABLE);
                write();
                read();
    这里需要
    write();db.close();read();
      

  2.   

    public class sqlEGActivity extends Activity {
        /** Called when the activity is first created. */
        
        /*基本数据定义*/
        public int sqlnum = 0;
        /*控件定义*/    /*数据库定义*/
        private SQLiteDatabase db = null;
        private final static String DATABASE_NAME = "Listinfo.db";
        private final static String TABLE_NAME = "T_list";
        private final static String TABLE_ID ="id";
        private final static String TABLE_USENAME ="usename";
        private final static String TABLE_PHONE ="phone";
        private final static String TABLE_QQ ="qq";
        private final static String TABLE_ADDRESS ="address";
        private final static String CREATE_TABLE ="create table "+TABLE_NAME+" ("+TABLE_ID+" int,"+TABLE_USENAME+" nvarchar(255),"+TABLE_PHONE+" int,"+TABLE_QQ+" int,"+TABLE_ADDRESS+" varchar(255))";
        
        
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //findId();
            init();
            
        }
        
    //    public void findId(){
    //        listview = (ListView)findViewById(R.id.ls);
    //    }
        
        public void init(){
            this.deleteDatabase(DATABASE_NAME);
            db = this.openOrCreateDatabase(DATABASE_NAME,MODE_PRIVATE,null);
            try{
                db.execSQL(CREATE_TABLE);
                System.out.println(CREATE_TABLE);
                write();
                System.out.println("write");
                db.close();
                System.out.println("read");
                read();
            }
            catch(Exception e){
                
            }
        }
        
        
        public void read(){
         SQLiteDatabase db1 = this.openOrCreateDatabase(DATABASE_NAME,MODE_PRIVATE,null);
            Cursor cursor = db1.rawQuery("select * from T_list where id==1", null);
            System.out.println("hello");
            sqlnum = cursor.getCount();
            System.out.println(sqlnum);
            if(cursor != null && sqlnum > 0){
                
                Toast toast = Toast.makeText(this,"有数据插入了",Toast.LENGTH_SHORT);
                toast.show();
            }
            cursor.close();
        }
        
        public void write(){
            ContentValues cv = new ContentValues();
            cv.put(TABLE_ID,1);
            cv.put(TABLE_USENAME,"wjd");
            cv.put(TABLE_PHONE,123456);
            cv.put(TABLE_QQ,752570126);
            cv.put(TABLE_ADDRESS,"浙江");
            db.insert(TABLE_NAME,null,cv);
        }
    }贴上试验了下好使。
    成了给分。偶缺分。
      

  3.   

    您这段代码在我这里报错了10-03 07:49:02.752: ERROR/AndroidRuntime(254): Uncaught handler: thread main exiting due to uncaught exception
    10-03 07:49:02.823: ERROR/AndroidRuntime(254): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.java.wjd/com.java.wjd.StuInfoActivity}: java.lang.ClassNotFoundException: com.java.wjd.StuInfoActivity in loader dalvik.system.PathClassLoader@44c06768
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.os.Handler.dispatchMessage(Handler.java:99)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.os.Looper.loop(Looper.java:123)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.ActivityThread.main(ActivityThread.java:4363)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at java.lang.reflect.Method.invokeNative(Native Method)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at java.lang.reflect.Method.invoke(Method.java:521)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at dalvik.system.NativeStart.main(Native Method)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254): Caused by: java.lang.ClassNotFoundException: com.java.wjd.StuInfoActivity in loader dalvik.system.PathClassLoader@44c06768
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
    10-03 07:49:02.823: ERROR/AndroidRuntime(254):     ... 11 more