0

ないInfactはこれがのAndroid Studioは、それが

SQLiteDatabase db = openOrCreateDatabase("Train_list.db", SQLiteDatabase.CREATE_IF_NECESSARY , null); 
    try { 
     final String CREATE_TABLE_TRAIN_LIST = "CREATE TABLE IF NOT EXISTS Train_list (" 
       + "Train_name VARCHAR," 
       + "Train_no VARCHAR," 
       + "Train_start VARCHAR," 
       + "Train_end VARCHAR," 
       + "Seats_Available VARCHAR);"; 
     db.execSQL(CREATE_TABLE_TRAIN_LIST); 
     Toast.makeText(admin_manipulation.this, "Table created", Toast.LENGTH_LONG).show(); 
     String sql = "INSERT or replace INTO Train_list (Train_name, Train_no, Train_start, Train_end, Seats_Available) VALUES('"+str_Train_name + "',' " +str_Train_no + "', '" +str_Train_start+"','" +str_Train_end+"',' " +str_Train_seats +"');"; 
     try { 
      db.execSQL(sql); 
      Toast.makeText(admin_manipulation.this, "train no:"+str_Train_no, Toast.LENGTH_SHORT).show(); 
     }catch(Exception e) 
     { 
      Toast.makeText(admin_manipulation.this, "Sorry Not Inserted Sucessfully", Toast.LENGTH_SHORT).show(); 
      Log.d("Error experienced",e.toString()); 
     } 

\ Train_Listと呼ばれる私のデータベースに項目を挿入するコードで、私はexceptionsがスローされなかったことを観察しているとはエントリがで作られていないときにデータベースが空であると言いますlogcat。したがって、データが正常に が挿入されたと信じるように導く。

これは、挿入されたデータを取得するためのコードです:

setContentView(R.layout.activity_display_data); 
     Bundle bundle = getIntent().getExtras(); 
     no_name = (ListView) findViewById(R.id.Disp_list); 
     String message = bundle.getString("package"); 
     String parameter; 
     SQLiteDatabase db = openOrCreateDatabase(message, SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     SQLiteDatabase db1 = openOrCreateDatabase("Train_list.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     Cursor header; 
     namer=(TextView)findViewById(R.id.T1); 
     try { 
      header = db1.rawQuery("Select * From Train_list Where Train_no='"+message.substring(0,(message.length()-3))+ "'", null); 
      String temp = header.getString((header.getColumnIndex("Train_name"))); 
      Toast.makeText(Display_data.this, "blahhh:"+temp, Toast.LENGTH_LONG).show(); 
      Log.d("Sucess!","temp:"+temp); 
      Toast.makeText(Display_data.this, "Gotcha:"+temp , Toast.LENGTH_LONG).show(); 
      namer.setText("Train Name: " + temp); 
     }catch(Exception e) 
     { 
      Log.d("Final Error",e.toString()); 
      Toast.makeText(Display_data.this, "Error", Toast.LENGTH_LONG).show(); 
     } 

これは私がnullがあるときに、このエラーがスローされていることを知っているグーグルの少しの例外

D/Final Error: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 

をスローしますカーソルに戻った私はなぜこれが何かが起こっていることを理解していない地獄は評価される!

+0

? 

を追加する必要がありTrain_no =」Train_list SELECT * FROM "+ message.substring(0、(message.length() - 3))+" '""データベースではすべての行が返されますか? –

+0

あなたはいつもカーソルが!そのオブジェクトにアクセスする前に空にします。 cursor.moveToFirst(); \t \t while(!cursor.isAfterLast()){cursor.getLong(0)}など –

+0

投稿したコードは、その例外を生成しているようではありません。 。 – laalto

答えて

0

OK、私はこれを見つけ、あなたは "" あなたは、クエリを実行する場合rawQuery声明

header = db1.rawQuery("Select * From Train_list Where Train_no= ?'"+message.substring(0,(message.length()-3))+ "'", null) 

link

+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [Review from](/ review/low-quality-posts/17870748) –

+0

残念ながら、構文エラー –

+0

@ ArunMani、 rawQuery( "SELECT Train_name FROM Train_list WHERE Train_no =?"、new String [] {m​​essage。部分文字列(0、(message.length()-3)}); – Xianwei

関連する問題