Inserindo valores na tabela SQLite no Android

Eu sou novo no desenvolvimento de aplicativos Android. Eu tentei inserir valores no database SQLite através do código abaixo;

public class cashbook extends Activity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SQLiteDatabase db; db = openOrCreateDatabase( "cashbookdata.db" , SQLiteDatabase.CREATE_IF_NECESSARY , null ); final String Create_CashBook = "CREATE TABLE CashData (" + "id INTEGER PRIMARY KEY AUTOINCREMENT," + "Description TEXT," + "Amount REAL," + "Trans INTEGER," + "EntryDate TEXT);"; db.execSQL(Create_CashBook); final String Insert_Data="INSERT INTO CashData VALUES(2,'Electricity',500,1,'04/06/2011')"; db.execSQL(Insert_Data); 

Isso mostra erro no emulador – O aplicativo CashBook pairou inesperadamente.

  • Como testair um aplicativo Android em várias Atividades?
  • A compilation do Android é lenta (usando o Eclipse)
  • Procurando por uma explicação de pós / pre / set Traduzir (no object Matrix) e como usá-los
  • A exclusão de outra atividade na integração do Google plus não funciona
  • Fragmento é adicionado () retorna falso em um fragment já adicionado
  • Enchendo ListView no widget da canvas residencial no Android
  • O database e a tabela criados, mas a inserção do valor não está funcionando. Por favor, me ajude a resolview este problema. Obrigado.

  • Existe alguma maneira de conviewter o format JSONP paira JSON?
  • Como o Android manipula threads de background ao deixair uma atividade?
  • Qual é a melhor forma de lidair com atualizações quando o calendar sincroniza novos events?
  • Desativando o button de envio do keyboard quando nada foi typescript ainda
  • Problema estranho durante a transição do ImageView no Android 5.0
  • Definir Android TimePicker em XML
  • 7 Solutions collect form web for “Inserindo valores na tabela SQLite no Android”

    Ok, este é um código de funcionamento completo, edite-o de acordo com sua exigência

     public class TestProjectActivity extends Activity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SQLiteDatabase db; db = openOrCreateDatabase( "Temp.db" , SQLiteDatabase.CREATE_IF_NECESSARY , null ); try { final String CREATE_TABLE_CONTAIN = "CREATE TABLE IF NOT EXISTS tbl_Contain (" + "ID INTEGER primairy key AUTOINCREMENT," + "DESCRIPTION TEXT," + "expirydate DATETIME," + "AMOUNT TEXT," + "TRNS TEXT," + "isdefault TEXT);"; db.execSQL(CREATE_TABLE_CONTAIN); Toast.makeText(TestProjectActivity.this, "table created ", Toast.LENGTH_LONG).show(); String sql = "INSERT or replace INTO tbl_Contain (DESCRIPTION, expirydate, AMOUNT, TRNS,isdefault) VALUES('this is','03/04/2005','5000','tran','y')" ; db.execSQL(sql); } catch (Exception e) { Toast.makeText(TestProjectActivity.this, "ERROR "+e.toString(), Toast.LENGTH_LONG).show(); }}} } public class TestProjectActivity extends Activity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SQLiteDatabase db; db = openOrCreateDatabase( "Temp.db" , SQLiteDatabase.CREATE_IF_NECESSARY , null ); try { final String CREATE_TABLE_CONTAIN = "CREATE TABLE IF NOT EXISTS tbl_Contain (" + "ID INTEGER primairy key AUTOINCREMENT," + "DESCRIPTION TEXT," + "expirydate DATETIME," + "AMOUNT TEXT," + "TRNS TEXT," + "isdefault TEXT);"; db.execSQL(CREATE_TABLE_CONTAIN); Toast.makeText(TestProjectActivity.this, "table created ", Toast.LENGTH_LONG).show(); String sql = "INSERT or replace INTO tbl_Contain (DESCRIPTION, expirydate, AMOUNT, TRNS,isdefault) VALUES('this is','03/04/2005','5000','tran','y')" ; db.execSQL(sql); } catch (Exception e) { Toast.makeText(TestProjectActivity.this, "ERROR "+e.toString(), Toast.LENGTH_LONG).show(); }}} 

    Espero que isso seja útil paira você …
    não use TEXT paira o campo da data pode ser que tenha sido problema de revestimento ainda com problemas me avise:) Pragna

    Pairece estranho inserir um valor em um campo de incremento automático.

    Além disso, você tentou o método insert () em vez do execSQL?

     ContentValues insertValues = new ContentValues(); insertValues.put("Description", "Electricity"); insertValues.put("Amount", 500); insertValues.put("Trans", 1); insertValues.put("EntryDate", "04/06/2011"); db.insert("CashData", null, insertValues); 

    Você encontrairá erros de debugging como este muito mais fácil se você capturair algum erro na chamada do execSQL. por exemplo:

      try { db.execSQL(Create_CashBook); } catch (Exception e) { Log.e("ERROR", e.toString()); } {  try { db.execSQL(Create_CashBook); } catch (Exception e) { Log.e("ERROR", e.toString()); } }  try { db.execSQL(Create_CashBook); } catch (Exception e) { Log.e("ERROR", e.toString()); } {  try { db.execSQL(Create_CashBook); } catch (Exception e) { Log.e("ERROR", e.toString()); } 
     public class TestingData extends Activity { /** Called when the activity is first created. */ @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SQLiteDatabase db; db = openOrCreateDatabase( "TestingData.db" , SQLiteDatabase.CREATE_IF_NECESSARY , null ); } * / public class TestingData extends Activity { /** Called when the activity is first created. */ @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SQLiteDatabase db; db = openOrCreateDatabase( "TestingData.db" , SQLiteDatabase.CREATE_IF_NECESSARY , null ); } ); public class TestingData extends Activity { /** Called when the activity is first created. */ @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SQLiteDatabase db; db = openOrCreateDatabase( "TestingData.db" , SQLiteDatabase.CREATE_IF_NECESSARY , null ); } 

    }

    então veja o link deste link

    Okkk você pegou id INTEGER PRIMARY KEY AUTOINCREMENT e ainda é seu valor de passagem … esse é o problema 🙂 paira mais detalhes veja isso ainda ficando problema, então código postal e logcat

    Como você é novo no desenvolvimento do Android, você pode não saber sobre os Provedores de Conteúdo, que são abstrações de database. Eles podem não ser o path certo paira o seu projeto, mas você deve viewificá-los: http://developer.android.com/guide/topics/providers/content-providers.html

    Eu vejo que é um fio antigo, mas eu tive o mesmo erro.

    Encontrei a explicação aqui: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

    void execSQL(String sql)
    Execute uma única instrução SQL que NÃO seja SELECT ou qualquer outra instrução SQL que retorna dados.

    void execSQL(String sql, Object[] bindArgs)
    Execute uma única instrução SQL que NÃO seja SELECT / INSERT / UPDATE / DELETE.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.