データベースに3つのテーブルがありますすべてのテーブルからレコードを表示したいのですが、すべてのテーブルで同じデータを表示しますが、すべてのテーブルに異なるデータを入力しています。ここにコードがあります。今まで私がデータを表示しているときは、前回のテーブルで入力したのと同じレコードを返します。私は各テーブルからランダムなデータを呼び出したいと思う。結果は私がRandom() limit 1
を使用して単一のデータを与えます。すべてのテーブルからは得られません。 3行目に入力したのと同じデータを返します。私はすべての3つのテーブルを単一のレコードフォームをフェッチしたい。sqliteから複数のテーブルデータを取得できません
package com.pawanigroup.myapplication;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class ViewPeople extends AppCompatActivity {
private TextView Starter;
private TextView MainCource;
private TextView Dessert;
private static final String SELECT_SQL= "SELECT * FROM Starter,MainCourse,Dessert ORDER BY RANDOM() LIMIT 1";
private SQLiteDatabase db;
private Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_people);
openDatabase();
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "myFont.ttf");
Starter = (TextView) findViewById(R.id.Starter);
MainCource =(TextView) findViewById(R.id.MainCourse);
Dessert = (TextView) findViewById(R.id.Dessert);
Starter.setTypeface(myTypeface);
MainCource.setTypeface(myTypeface);
MainCource.setTypeface(myTypeface);
c = db.rawQuery(SELECT_SQL, null);
c.moveToFirst();
showRecords();
}
protected void openDatabase() {
db = openOrCreateDatabase("PersonDB", Context.MODE_PRIVATE, null);
}
protected void showRecords() {
String Starter = c.getString(1);
String MainCourse = c.getString(1);
String Desstert = c.getString(1);
//Starter.setText(Starter);
MainCource.setText(MainCourse);
Dessert.setText(Desstert);
}
}
ような何かが、それは誤りandroid.database.CursorIndexOutOfBoundsExceptionを取得 –