Sqlite自动增量列问题

时间:2013-08-12 13:31:25

标签: android sql

我编写了一个代码,它有一个下一个按钮,在自定义列表视图中显示存储在我数据库中的下三个项目。 我创建了一个名为id的列,它是一个自动增量列。 但是当我尝试在我的日志cat中打印出id列的值时,它只显示一个零。 这有什么问题?

这是我的数据库:

public class youtube_db extends SQLiteOpenHelper {


    public static final String dataBase_NAME="YOUTUBE_database";
    private static final  int dataBase_VERSION=1;
    public static final  String dataBase_TABLE="youtube_VIDEOS";
    public static final String[] COLS_List={"video_Name","video_Descrption","video_Img","video_Url","video_CountView","video_LIKES","video_CommentCount","id" };

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //end of declaring attributes and tables conents
    public youtube_db(Context context) {
        super(context,dataBase_NAME, null, dataBase_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(
            " create table " + dataBase_TABLE + "(" + COLS_List[0]  +" text not null , "+ COLS_List[1]
                +" text not null , "+ COLS_List[2]+" text not null , "+COLS_List[3]+" text not null , "+COLS_List[4]+" integer , "+COLS_List[5]
                +" integer , "+COLS_List[6]+" integer ,"+COLS_List[7]+" integer primary key autoincrement )  ");                


    }

这里我试图打印id值:

ArrayList<videos> getAllvideosList=new ArrayList<videos>();
                             getAllvideosList=connection.getAllData();
                             connection.close();

                             for(int i=0;i<getAllvideosList.size();i++){

                                  videos videoObject=new videos();

                                 videoObject.setVideoname(getAllvideosList.get(i).getVideoname());
                                 videoObject.setDecscrption(getAllvideosList.get(i).getDecscrption());
                                 videoObject.setImageurl(getAllvideosList.get(i).getImageurl());
                                 videoObject.setVediourl(getAllvideosList.get(i).getVediourl());

                                 Log.d("try to print id   ", String.valueOf(getAllvideosList.get(i).getId()));


                                 vlist.add(videoObject);
                                 lview.setAdapter(new custome(MainActivity.this,vlist));
                                 ad.notifyDataSetChanged(); 

这是获取所有数据的函数:

public ArrayList<videos> getAllData(){
        ArrayList<videos> videoArray=new ArrayList<videos>();

        Cursor cursor= SQL_db.query(my_Database.dataBase_TABLE, my_Database.COLS_List, null, null, null, null, null);

        for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){

            videos videoObject=new videos();
            videoObject.setVideoname(cursor.getString(0));
            videoObject.setDecscrption(cursor.getString(1));
            videoObject.setImageurl(cursor.getString(2));
            videoObject.setVediourl(cursor.getString(3));


            videoArray.add(videoObject);

            Log.d("getAlLvideos", "ok....  ");



        }
       cursor.close();
       Log.d("after close cursor", "ok....  ");

        return videoArray; 

    }//end of function get all data

1 个答案:

答案 0 :(得分:2)

问题是您不能为您的业务对象致电setIdvideoObject

在你的for循环中添加这一行:

        videoObject.setId(cursor.getInteger(7));