6

I am new to Android following is my code I wants to add data in data base on the click of button but when I click on the Button my application crashes can anybody suggest me any solution here is my code:

public class Third extends Activity implements OnClickListener{
Button btn;
SQLiteDatabase db;
EditText edit1;
EditText edit2;
EditText edit3;

@Override
protected void onCreate(Bundle icicle) {
// TODO Auto-generated method stub
super.onCreate(icicle);
setContentView(R.layout.mit);
SQLiteDatabase db;
db = openOrCreateDatabase("doctorinfo.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
final String CREATE_TABLE_COUNTRIES ="CREATE TABLE med_d ("+ "id INTEGER PRIMARY KEY AUTOINCREMENT,"+ "DOC_NAME TEXT,"+ "DOC_NO TEXT,"+ "DOC_EMAIL TEXT);";
//db.execSQL(CREATE_TABLE_COUNTRIES);
btn=(Button)findViewById(R.id.button1);
edit1=(EditText)findViewById(R.id.editText1);
edit2=(EditText)findViewById(R.id.editText2);
edit3=(EditText)findViewById(R.id.editText3);

btn.setOnClickListener(this);


}

@Override
public void onClick(View arg0) {
String d=edit1.getText().toString();
String m=edit2.getText().toString();
String p=edit3.getText().toString();

ContentValues values = new ContentValues();
values.put("DOC_NAME",d );
values.put("DOC_NO",m);
values.put("DOC_EMAIL",p);
//long countryId = db.insert("med_d", null, values);
//try {
db.insertOrThrow("med_d", null,values);
}// catch (Exception e) {
//Log.e("Add Error", e.toString());
//e.printStackTrace();
//}



}
1
  • what is the error on logcat....... Commented Jun 20, 2011 at 4:53

3 Answers 3

4

SQLITEOPENHELPER CLASS

package com.db.demo;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;

/**
 * Subclass of the {@link SQLiteOpenHelper} that sets up the database for the
 * demo.
 * 
 * @author Kah
 */
public class DatabaseHelper extends SQLiteOpenHelper {

public DatabaseHelper(Context context) {
    super(context, "CursorDemo", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE IF NOT EXISTS names ("
            + BaseColumns._ID
            + " INTEGER PRIMARY KEY AUTOINCREMENT, first VARCHAR, last VARCHAR)");
    db.execSQL("INSERT INTO names (first, last) VALUES ('John', 'Doe')");
    db.execSQL("INSERT INTO names (first, last) VALUES ('James', 'Kirk')");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Steps to upgrade the database for the new version ...
}

}

****Activity class****

package com.db.demo;


import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class DataHandlingActivity extends ListActivity{
    private SQLiteDatabase database;
 String fields[] = { "first", "last", BaseColumns._ID };
    private CursorAdapter dataSource;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    DatabaseHelper helper = new DatabaseHelper(this);
    database = helper.getReadableDatabase();
    Cursor data = database.query("names", fields, null, null, null, null,
            null);

    dataSource = new SimpleCursorAdapter(this, R.layout.row, data, fields,
            new int[] { R.id.first, R.id.last });

    ListView view = getListView();
    view.setHeaderDividersEnabled(true);
    view.addHeaderView(getLayoutInflater().inflate(R.layout.row, null));

    setListAdapter(dataSource);
}

}

use something like this in button click and change activity class update sql database with ContentValues and the update-method

Sign up to request clarification or add additional context in comments.

Comments

2

You have to use SqliteOpenHelper class to do all the database manipulation.

Please go through this link, this will give you some good tips.

http://www.xoriant.com/blog/mobile-application-development/android-sqlite-database.html

Comments

1

Put this method in your database helper class:

public long InsertRecord(String msg, String msg1,String msg2) {

    long d = 0;
    ContentValues values = new ContentValues();

    values.put(SMS_NO, msg);
    values.put(SMS_BODY, msg1);
            values.put(SMS_BODY, msg2);

    try {
        d = myDataBase.insert(SMS_TBL, null, values);
    } catch (Exception e) {

    }
    return d;

}

after this in your activity's onCreate method you must put this code to create thedatabase:

SQLiteDatabase sqLiteDatabase;
DataBaseHelper dbHelper;

dbHelper = new DataBaseHelper(getActivity().getApplicationContext());


            try {
                dbHelper.createDataBase();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            dbHelper.openDataBase();
                dbHelper.onCreate(sqLiteDatabase);

and finally in on btn click

btnBlock.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String edittext = edittext.getText().toString();
            String edittext1 = edittext1.getText().toString();
                            String edittext2 = edittext2.getText().toString();

            dbHelper.InsertRecord(edittext,edittext1,edittext2);

        }
    });

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.