ユーザーからの入力を日付として取得しています。その日付がテーブルにあるかどうかを確認し、その日付に対応するデータをフェッチします。そうでない場合は、そのテーブルに日付を挿入します。次のコードを使用していますが、selectクエリで問題が発生しています。私のコードは以下の通りです:
package com.foursquaregame.in;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Astro_talk extends Activity{
EditText dob;
Button submit;
SQLiteDatabase db_sunshine=null;
String Data="";
String Data1="";
String TableName="tb_astro";
String dob_var;
String date_var;
String quote;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.astro_talk);
//quote="Don't worry, Be happy";
dob=(EditText)findViewById(R.id.dob);
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
submit=(Button)findViewById(R.id.submit);
submit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
java.util.Date dateObject;
System.out.println("submit data");
dob_var=dob.getText().toString();
try {
dateObject = sdf.parse(dob_var);
date_var = new SimpleDateFormat("yyyy/MM/dd").format(dateObject);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(dob_var);
try
{
db_sunshine=Astro_talk.this.openOrCreateDatabase("db_hellosunshine", MODE_PRIVATE, null);
db_sunshine.execSQL("CREATE TABLE IF NOT EXISTS "+ TableName + " (d_o_b NUMERIC,astro_quote DATE))");
Cursor c=db_sunshine.rawQuery("SELECT astro_quote FROM "+ TableName +"WHERE d_o_b='"+ date_var +"'" , null);
System.out.println("query executed");
int column1=c.getColumnIndex("d_o_b");
int column2=c.getColumnIndex("astro_quote");
c.moveToFirst();
if(c!=null)
{
{
String date=c.getString(column1);
String astro =c.getString(column2);
Data=Data+date+"\n";
Data1=Data1+astro+"\n";
System.out.println("name"+date+" score"+astro);
}while(c.moveToNext());
}
if(Data.equals(dob_var)){
RelativeLayout rel_astro=(RelativeLayout)findViewById(R.id.rel_astro);
TextView tv_astro=(TextView)findViewById(R.id.tv_astro);
tv_astro.setText(Data);
setContentView(rel_astro);
}
else{
db_sunshine.execSQL("INSERT INTO "+TableName+"(d_o_b,astro_quote)"+" VALUES ('"+dob_var+"','"+quote+"');");
Toast customToast = new Toast(getBaseContext());
customToast = Toast.makeText(getBaseContext(), "Your quote is submit", Toast.LENGTH_SHORT);
customToast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);
customToast.show();
Intent newIntent = new Intent(Astro_talk.this,selectoption.class);
startActivity(newIntent);
finishActivity(0);
}
}catch(Exception ex)
{
Log.e("ERROR","ERROR" ,ex);
}
finally
{
if(db_sunshine!=null)
db_sunshine.close();
}
}
});
}
}
どこで間違っているのか教えてください。