How to add data to the database at the click of a button?

I am new to Android, this is my code that I want to add to the database at the click of a button, but when I click the "I" button, my application crashes, can anyone offer 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(); //} } 
+4
source share
3 answers

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 ... } 

}

**** Class of activity ****

 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 when you click the button and change the activity class to update the sql database using ContentValues ​​and the update method

+3
source

You must use the SqliteOpenHelper class to perform all database manipulations.

Please follow this link, this will give you some useful tips.

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

+2
source

Put this method in the 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 that in your onCreate mode you should put this code to create the database:

 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 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); } }); 
+1
source

All Articles