0

自動インクリメントされる id と data の 2 つの列を持つ 1 つのテーブルで、単純なデータベースを作成したいだけなので、保存するターゲット データを使用します。エラーを返さないだけでなく、データを追加しない次のコードを作成しました。

database = openOrCreateDatabase ("alldata", 0, null);
    try{
        database.execSQL("CREATE TABLE cars(_id INTEGER PRIMARY KEY,data INTEGER);");
    }
    catch(SQLException e){

    }

    //database.execSQL("INSERT INTO cars(data) values(0);");
    database.execSQL("INSERT INTO cars(data) values(1);");
    database.execSQL("INSERT INTO cars(data) values(2);");
    database.execSQL("INSERT INTO cars(data) values(3);");
    database.execSQL("INSERT INTO cars(data) values(4);");
    database.execSQL("INSERT INTO cars(data) values(5);");

    String[] data={"_id","data"};
    Cursor c=database.query(false, "cars", data, null, null, null, null, null, null, null);
    int i=0;
    if(c.getCount()>0){
        c.moveToFirst();
        readed[i]=c.getInt(0);
        readed[i+1]=c.getInt(1);
        i+=2;
    }

そして、「読み取った」テーブルを読み取ろうとすると、2 つのゼロ 00 しか表示されません。

            for(int i=0;i<readed.length;i++){
                if(readed[i] != null)
                    draw_number((int) readed[i],canvas,(float)(0.9*width-i*0.05*width),(float)(0.8*height));
            }

描画番号は、サーフェスビューで数字を描画している私の方法です。これには何の問題もありません。残念ながら、データベースのどこに問題があるのか​​ わかりません。私が知る限り、私はすべて問題なく実行し、次のように返されます: 0 0 1 1 2 2 3 3 4 4 5 5 (以前にデータ列に 0 を 1 つ追加したため) しかし、0 0 しか返されません。

4

3 に答える 3

0

データベースに自動インクリメントを使用していませんか? あなたのデータベースに見られるように

これが、結果が 1 つしか得られない理由です。

ドロップテーブルを使用して再試行してください

変化する

       for(int i=0;i<readed.length;i++){

      for(int i=0;i<readed[].length;i++){
于 2013-05-25T12:45:12.713 に答える
0

「アプリの管理」->「データのクリア」を使用して、アプリケーションデータをクリアできます(これにより、以前に作成されたすべてのデータベース、設定、およびその他すべてが削除されます)。AUTOINCREMENT を使用してコードを再度実行します。

database.execSQL("CREATE TABLE cars(_id INTEGER PRIMARY KEY AUTOINCREMENT,data INTEGER);");
于 2013-05-25T12:51:06.187 に答える