无法在android中创建数据库

迪维亚

我一直试图创建一个表以及单击按钮插入时通过表中的editText插入一些数据。但是当我单击插入按钮时,该应用程序停止工作。这是我的activity.xml

<?xml version="1.0" encoding="utf-8"?>

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:text="enter here:">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter here"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="165dp"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="numberDecimal" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Insert" />

</LinearLayout>

这是activity.java

    package com.example.dailyexpenses;
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.app.Activity;
    import android.content.ContentValues;
    import android.database.sqlite.SQLiteDatabase;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import java.util.ArrayList;
    import android.view.View.OnClickListener;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    public class Entertheexpenses extends ActionBarActivity  {
   SQLiteDatabase db;
EditText et1;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_entertheexpenses);
    et1=(EditText)findViewById(R.id.editText1);
    db= openOrCreateDatabase("Mydb", MODE_PRIVATE, null);
    db.execSQL("create table if not exists income(expenditures number(8,2))");
     Button but1= (Button)findViewById(R.id.button1);
       but1.setOnClickListener(new OnClickListener() 
     {
           public void onClick(View v) 
         {   
        String name=et1.getText().toString();
        double name1 = Double.parseDouble(name);
        db.execSQL("insert into income values(name1)");   
}
     });
}
}

这是logcat:

11-07 08:13:09.630: D/AndroidRuntime(1888): Shutting down VM
11-07 08:13:09.630: W/dalvikvm(1888): threadid=1: thread exiting with uncaught exception                   (group=0xb2a6cba8)
11-07 08:13:09.700: E/AndroidRuntime(1888): FATAL EXCEPTION: main
11-07 08:13:09.700: E/AndroidRuntime(1888): Process: com.example.dailyexpenses, PID: 1888
11-07 08:13:09.700: E/AndroidRuntime(1888): java.lang.IllegalStateException: attempt to re-open       an already-closed object: SQLiteDatabase: /data/data/com.example.dailyexpenses/databases/Mydb
11-07 08:13:09.700: E/AndroidRuntime(1888):     at     android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1657)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at com.example.dailyexpenses.Entertheexpenses$1.onClick(Entertheexpenses.java:52)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.view.View.performClick(View.java:4438)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.view.View$PerformClick.run(View.java:18422)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.os.Handler.handleCallback(Handler.java:733)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.os.Handler.dispatchMessage(Handler.java:95)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at android.os.Looper.loop(Looper.java:136)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at   android.app.ActivityThread.main(ActivityThread.java:5017)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at java.lang.reflect.Method.invokeNative(Native Method)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at java.lang.reflect.Method.invoke(Method.java:515)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
11-07 08:13:09.700: E/AndroidRuntime(1888):     at dalvik.system.NativeStart.main(Native Method)
NobalG

您的插入查询的问题name1是没有将变量的值提供给查询,您正在这样做

  db.execSQL("insert into income values(name1)");   

但是您必须像下面这样对变量进行串联

  db.execSQL("insert into income values("+name1+")"); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在android中创建Sqlite数据库

来自分类Dev

Android 无法创建 SQLite 数据库

来自分类Dev

无法在phpMyAdmin中创建数据库

来自分类Dev

无法在phpMyAdmin中创建数据库

来自分类Dev

首次在Android中创建数据库

来自分类Dev

在Android中创建数据库

来自分类Dev

首次在Android中创建数据库

来自分类Dev

在Android中创建数据库

来自分类Dev

无法从Android中自行创建的sqlite数据库中获取数据

来自分类Dev

在Rails中无法在数据库中创建记录

来自分类Dev

Android-无法创建数据库实例

来自分类Dev

无法从Android中的数据库填充listView中的数据

来自分类Dev

如何从另一个活动创建的数据库中获取数据/无法将数据更新到数据库(Android Studio,SQLite)

来自分类Dev

无法在Django 1.7中创建South数据库模型

来自分类Dev

无法在Django 1.7中创建South数据库模型

来自分类Dev

无法在SQL SSAS中创建数据库

来自分类Dev

无法在数据库中创建表

来自分类Dev

无法在Web SQL数据库中创建新表

来自分类Dev

无法自动创建SQL Server数据库中的表

来自分类Dev

无法使用execBatch()在Hana数据库中创建用户

来自分类Dev

无法在数据库中创建多个表

来自分类Dev

无法在IE10中创建IndexedDB数据库

来自分类Dev

无法在Django 1.7中创建South数据库模型

来自分类Dev

无法在Laravel 4.2中创建数据库表

来自分类Dev

无法在数据库中创建表

来自分类Dev

无法在MySQL中创建简单的数据库

来自分类Dev

无法在SQL SSAS中创建数据库

来自分类Dev

无法在 MySQL 数据库中创建列?

来自分类Dev

无法在 mongo 数据库中创建表的架构